diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-24 22:06:47 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-25 13:27:10 +0000 |
commit | c6151f84a7bd7cadb5f86d58582fb659ce4fae09 (patch) | |
tree | 4aee5255ba5a613c9320b6ee66a63a218f333aa6 /src | |
parent | a5eee7695ff09338d1481efde268ccdc62cd9143 (diff) |
QQuickDrawer: override handlePress/Move/Release/Ungrab()
Change-Id: Id947e868aa1c89aaab0cb6988b76f0cfe25d8339
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickdrawer.cpp | 39 | ||||
-rw-r--r-- | src/quicktemplates2/qquickdrawer_p.h | 1 | ||||
-rw-r--r-- | src/quicktemplates2/qquickdrawer_p_p.h | 5 |
3 files changed, 32 insertions, 13 deletions
diff --git a/src/quicktemplates2/qquickdrawer.cpp b/src/quicktemplates2/qquickdrawer.cpp index 862b36dc..7ecd1558 100644 --- a/src/quicktemplates2/qquickdrawer.cpp +++ b/src/quicktemplates2/qquickdrawer.cpp @@ -393,13 +393,36 @@ bool QQuickDrawerPrivate::ungrabMouse(QMouseEvent *event) return wasGrabbed; } -bool QQuickDrawerPrivate::handleMousePressEvent(QQuickItem *item, QMouseEvent *event) +void QQuickDrawerPrivate::handlePress(const QPointF &point, ulong timestamp) { - handlePress(item->mapToScene(event->localPos()), event->timestamp()); + QQuickPopupPrivate::handlePress(point, timestamp); offset = 0; - pressPoint = event->windowPos(); - velocityCalculator.startMeasuring(pressPoint, event->timestamp()); + pressPoint = point; + velocityCalculator.startMeasuring(point, timestamp); +} + +void QQuickDrawerPrivate::handleMove(const QPointF &point, ulong timestamp) +{ + QQuickPopupPrivate::handleMove(point, timestamp); +} + +void QQuickDrawerPrivate::handleRelease(const QPointF &point, ulong timestamp) +{ + QQuickPopupPrivate::handleRelease(point, timestamp); +} + +void QQuickDrawerPrivate::handleUngrab() +{ + QQuickPopupPrivate::handleUngrab(); + + pressPoint = QPoint(); + velocityCalculator.reset(); +} + +bool QQuickDrawerPrivate::handleMousePressEvent(QQuickItem *item, QMouseEvent *event) +{ + handlePress(item->mapToScene(event->localPos()), event->timestamp()); // don't block press events // a) outside a non-modal drawer, @@ -668,14 +691,6 @@ void QQuickDrawer::mouseReleaseEvent(QMouseEvent *event) d->handleMouseReleaseEvent(d->popupItem, event); } -void QQuickDrawer::mouseUngrabEvent() -{ - Q_D(QQuickDrawer); - QQuickPopup::mouseUngrabEvent(); - d->pressPoint = QPoint(); - d->velocityCalculator.reset(); -} - bool QQuickDrawer::overlayEvent(QQuickItem *item, QEvent *event) { Q_D(QQuickDrawer); diff --git a/src/quicktemplates2/qquickdrawer_p.h b/src/quicktemplates2/qquickdrawer_p.h index 68b58362..f4987e8b 100644 --- a/src/quicktemplates2/qquickdrawer_p.h +++ b/src/quicktemplates2/qquickdrawer_p.h @@ -89,7 +89,6 @@ protected: void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; - void mouseUngrabEvent() override; bool overlayEvent(QQuickItem *item, QEvent *event) override; void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; diff --git a/src/quicktemplates2/qquickdrawer_p_p.h b/src/quicktemplates2/qquickdrawer_p_p.h index dc17647d..bb341d50 100644 --- a/src/quicktemplates2/qquickdrawer_p_p.h +++ b/src/quicktemplates2/qquickdrawer_p_p.h @@ -74,6 +74,11 @@ public: bool grabMouse(QMouseEvent *event); bool ungrabMouse(QMouseEvent *event); + void handlePress(const QPointF &point, ulong timestamp) override; + void handleMove(const QPointF &point, ulong timestamp) override; + void handleRelease(const QPointF &point, ulong timestamp) override; + void handleUngrab() override; + bool handleMousePressEvent(QQuickItem *item, QMouseEvent *event); bool handleMouseMoveEvent(QQuickItem *item, QMouseEvent *event); bool handleMouseReleaseEvent(QQuickItem *item, QMouseEvent *event); |