diff options
author | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2021-08-25 15:23:51 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-08-26 15:03:47 +0000 |
commit | 3bd13ed07659b2c6901aed9e239a09a92a7decb7 (patch) | |
tree | 4ffe3aff0e9f525fe7e481254115c78c4270b5d5 | |
parent | 51f80c1293d7ba6d8c874aa242156d067d574ba5 (diff) |
QQuickSelectionRectangle: show a SizeFDiagCursor on top of the handles
When hovering a selection handle, show a diagonal resize cursor.
Change-Id: I70b20a075434fb8869bc5bd813bfea7e8ec7e67c
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit fbb27294e3c6482fc94c2ecc858fc429ec1bef4e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/quicktemplates2/qquickselectionrectangle.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickselectionrectangle.cpp b/src/quicktemplates2/qquickselectionrectangle.cpp index 9678c6cfe5..370014e53f 100644 --- a/src/quicktemplates2/qquickselectionrectangle.cpp +++ b/src/quicktemplates2/qquickselectionrectangle.cpp @@ -38,6 +38,8 @@ #include "qquickselectionrectangle_p_p.h" #include <QtQml/qqmlinfo.h> +#include <QtQuick/private/qquickdraghandler_p.h> +#include <QtQuick/private/qquickhoverhandler_p.h> #include <QtQuick/private/qquicktableview_p_p.h> @@ -278,6 +280,12 @@ QQuickItem *QQuickSelectionRectanglePrivate::createHandle(QQmlComponent *delegat dragHandler->setParent(handleItem); QQuickItemPrivate::get(handleItem)->addPointerHandler(dragHandler); + QQuickHoverHandler *hoverHandler = new QQuickHoverHandler(); + hoverHandler->setTarget(nullptr); + hoverHandler->setParent(handleItem); + hoverHandler->setCursorShape(Qt::SizeFDiagCursor); + QQuickItemPrivate::get(handleItem)->addPointerHandler(hoverHandler); + QObject::connect(dragHandler, &QQuickDragHandler::activeChanged, [=]() { if (dragHandler->active()) { const QPointF localPos = dragHandler->centroid().position(); @@ -290,10 +298,12 @@ QQuickItem *QQuickSelectionRectanglePrivate::createHandle(QQmlComponent *delegat m_draggedHandle = handleItem; updateHandles(); updateDraggingState(true); + QGuiApplication::setOverrideCursor(Qt::SizeFDiagCursor); } else { m_scrollTimer.stop(); m_selectable->normalizeSelection(); updateDraggingState(false); + QGuiApplication::restoreOverrideCursor(); } }); |