diff --git a/src/View.h b/src/View.h index eab05397..266c3671 100644 --- a/src/View.h +++ b/src/View.h @@ -172,6 +172,7 @@ public: virtual QScreen *screen() const = 0; virtual void setFocus(Qt::FocusReason) = 0; virtual void setWindowOpacity(double) = 0; + virtual void setCursor(Qt::CursorShape) = 0; // TODOv2: Check if these two should be in the controller or on view virtual void onLayoutRequest() diff --git a/src/ViewWrapper.cpp b/src/ViewWrapper.cpp index 9908ab22..9d0539ff 100644 --- a/src/ViewWrapper.cpp +++ b/src/ViewWrapper.cpp @@ -196,3 +196,8 @@ void ViewWrapper::render(QPainter *) { qFatal("Not implemented"); } + +void ViewWrapper::setCursor(Qt::CursorShape) +{ + qFatal("Not implemented"); +} diff --git a/src/ViewWrapper.h b/src/ViewWrapper.h index b6e7344f..bf67a99e 100644 --- a/src/ViewWrapper.h +++ b/src/ViewWrapper.h @@ -62,6 +62,7 @@ public: void setWindowOpacity(double) override; void releaseKeyboard() override; void render(QPainter *p) override; + void setCursor(Qt::CursorShape) override; /// TODOv2: Remove virtual DropArea *asDropArea() const diff --git a/src/private/WidgetResizeHandler.cpp b/src/private/WidgetResizeHandler.cpp index d6e8aa60..366af6d1 100644 --- a/src/private/WidgetResizeHandler.cpp +++ b/src/private/WidgetResizeHandler.cpp @@ -465,7 +465,7 @@ void WidgetResizeHandler::updateCursor(CursorPosition m) void WidgetResizeHandler::setMouseCursor(Qt::CursorShape cursor) { if (m_isTopLevelWindowResizer) - mTarget->asQWidget()->setCursor(cursor); + mTarget->setCursor(cursor); else qApp->setOverrideCursor(cursor); } @@ -473,7 +473,7 @@ void WidgetResizeHandler::setMouseCursor(Qt::CursorShape cursor) void WidgetResizeHandler::restoreMouseCursor() { if (m_isTopLevelWindowResizer) - mTarget->asQWidget()->setCursor(Qt::ArrowCursor); + mTarget->setCursor(Qt::ArrowCursor); else qApp->restoreOverrideCursor(); } diff --git a/src/qtquick/views/View_qtquick.h b/src/qtquick/views/View_qtquick.h index 184dfbab..990bcaab 100644 --- a/src/qtquick/views/View_qtquick.h +++ b/src/qtquick/views/View_qtquick.h @@ -332,6 +332,11 @@ public: qWarning() << Q_FUNC_INFO << "Implement me"; } + void setCursor(Qt::CursorShape shape) override + { + QQuickItem::setCursor(shape); + } + protected: bool event(QEvent *e) override { diff --git a/src/qtwidgets/views/View_qtwidgets.h b/src/qtwidgets/views/View_qtwidgets.h index a23de586..121bda19 100644 --- a/src/qtwidgets/views/View_qtwidgets.h +++ b/src/qtwidgets/views/View_qtwidgets.h @@ -250,6 +250,11 @@ public: Base::render(p); } + void setCursor(Qt::CursorShape shape) override + { + QWidget::setCursor(shape); + } + virtual QSize parentSize() const override { if (auto p = QWidget::parentWidget())