aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-24 22:06:47 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-25 13:27:10 +0000
commitc6151f84a7bd7cadb5f86d58582fb659ce4fae09 (patch)
tree4aee5255ba5a613c9320b6ee66a63a218f333aa6
parenta5eee7695ff09338d1481efde268ccdc62cd9143 (diff)
QQuickDrawer: override handlePress/Move/Release/Ungrab()
Change-Id: Id947e868aa1c89aaab0cb6988b76f0cfe25d8339 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickdrawer.cpp39
-rw-r--r--src/quicktemplates2/qquickdrawer_p.h1
-rw-r--r--src/quicktemplates2/qquickdrawer_p_p.h5
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);