diff options
| author | Shawn Rutledge <shawn.rutledge@qt.io> | 2020-01-16 13:45:15 +0100 |
|---|---|---|
| committer | Jan Arve Sæther <jan-arve.saether@qt.io> | 2020-01-31 11:13:26 +0100 |
| commit | 1c44804600ad3dbeb60d1f5209ce9cf937d30ab3 (patch) | |
| tree | cfa4c668cb527d89ae666ea1c2290a1cab4bc256 /src/quick/handlers/qquickhoverhandler.cpp | |
| parent | a6e661d25bf7ebeb8f4e58925aa9375f5ca10ef3 (diff) | |
Add PointerHandler.cursorShape property
Also, QQuickItemPrivate::setHasCursorInChild() was unable to check
the QQuickItemPrivate::hasCursor variable, because the function
argument hasCursor was shadowing that, even though the comment
"nope! sorry, I have a cursor myself" hints that the intention
was to check that. So this change exposed a problem there, and
we have to fix that too, in order to keep the tst_qquickwindow::cursor()
test passing.
[ChangeLog][Event Handlers] Pointer Handlers now have a cursorShape
property to set the cursor when the handler is active and the mouse is
hovering, and restore to the previous cursor when the mouse leaves.
Fixes: QTBUG-68073
Change-Id: Ib5c66bd59c4691c4210ee5465e1c95e7bdcf5ae1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Diffstat (limited to 'src/quick/handlers/qquickhoverhandler.cpp')
| -rw-r--r-- | src/quick/handlers/qquickhoverhandler.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/quick/handlers/qquickhoverhandler.cpp b/src/quick/handlers/qquickhoverhandler.cpp index 79cb288af8..1216eda477 100644 --- a/src/quick/handlers/qquickhoverhandler.cpp +++ b/src/quick/handlers/qquickhoverhandler.cpp @@ -64,6 +64,9 @@ Q_LOGGING_CATEGORY(lcHoverHandler, "qt.quick.handler.hover") properties can be used to narrow the behavior to detect hovering of specific kinds of devices or while holding a modifier key. + The \l cursorShape property allows changing the cursor whenever + \l hovered changes to \c true. + \sa MouseArea, PointHandler */ @@ -125,4 +128,52 @@ void QQuickHoverHandler::setHovered(bool hovered) } } +/*! + \since 5.15 + \qmlproperty Qt::CursorShape QtQuick::HoverHandler::cursorShape + This property holds the cursor shape that will appear whenever + \l hovered is \c true and no other handler is overriding it. + + The available cursor shapes are: + \list + \li Qt.ArrowCursor + \li Qt.UpArrowCursor + \li Qt.CrossCursor + \li Qt.WaitCursor + \li Qt.IBeamCursor + \li Qt.SizeVerCursor + \li Qt.SizeHorCursor + \li Qt.SizeBDiagCursor + \li Qt.SizeFDiagCursor + \li Qt.SizeAllCursor + \li Qt.BlankCursor + \li Qt.SplitVCursor + \li Qt.SplitHCursor + \li Qt.PointingHandCursor + \li Qt.ForbiddenCursor + \li Qt.WhatsThisCursor + \li Qt.BusyCursor + \li Qt.OpenHandCursor + \li Qt.ClosedHandCursor + \li Qt.DragCopyCursor + \li Qt.DragMoveCursor + \li Qt.DragLinkCursor + \endlist + + The default value of this property is not set, which allows any active + handler on the same \l parentItem to determine the cursor shape. + This property can be reset to the initial condition by setting it to + \c undefined. + + If any handler with defined \c cursorShape is + \l {PointerHandler::active}{active}, that cursor will appear. + Else if the HoverHandler has a defined \c cursorShape, that cursor will appear. + Otherwise, the \l {QQuickItem::cursor()}{cursor} of \l parentItem will appear. + + \note When this property has not been set, or has been set to \c undefined, + if you read the value it will return \c Qt.ArrowCursor. + + \sa Qt::CursorShape, QQuickItem::cursor() +*/ + QT_END_NAMESPACE |
