aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2021-08-25 15:23:51 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-08-26 15:03:47 +0000
commit3bd13ed07659b2c6901aed9e239a09a92a7decb7 (patch)
tree4ffe3aff0e9f525fe7e481254115c78c4270b5d5
parent51f80c1293d7ba6d8c874aa242156d067d574ba5 (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.cpp10
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();
}
});