aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickpageindicator.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-07-04 14:54:47 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-04 18:05:29 +0000
commit26d528f6b5c61ab5003e97989693851bb6964be4 (patch)
tree67e0da1500e0dc86db739a02fa226dc9cd7eaaab /src/quicktemplates2/qquickpageindicator.cpp
parentace9d50e64b97b3a7f1fcffe9d899ff5d14f092d (diff)
PageIndicator: fix touch support
Change-Id: I00d4f6ed466e33be3f31b2cd0bcbae6707d84cb9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickpageindicator.cpp')
-rw-r--r--src/quicktemplates2/qquickpageindicator.cpp81
1 files changed, 41 insertions, 40 deletions
diff --git a/src/quicktemplates2/qquickpageindicator.cpp b/src/quicktemplates2/qquickpageindicator.cpp
index b4c9c14c..7387b019 100644
--- a/src/quicktemplates2/qquickpageindicator.cpp
+++ b/src/quicktemplates2/qquickpageindicator.cpp
@@ -98,8 +98,13 @@ public:
{
}
- QQuickItem *itemAt(const QPoint &pos) const;
- void updatePressed(bool pressed, const QPoint &pos = QPoint());
+ void handlePress(const QPointF &point) override;
+ void handleMove(const QPointF &point) override;
+ void handleRelease(const QPointF &point) override;
+ void handleUngrab() override;
+
+ QQuickItem *itemAt(const QPointF &pos) const;
+ void updatePressed(bool pressed, const QPointF &pos = QPointF());
void setContextProperty(QQuickItem *item, const QString &name, const QVariant &value);
void itemChildAdded(QQuickItem *, QQuickItem *child);
@@ -111,7 +116,39 @@ public:
QQuickItem *pressedItem;
};
-QQuickItem *QQuickPageIndicatorPrivate::itemAt(const QPoint &pos) const
+void QQuickPageIndicatorPrivate::handlePress(const QPointF &point)
+{
+ QQuickControlPrivate::handlePress(point);
+ if (interactive)
+ updatePressed(true, point);
+}
+
+void QQuickPageIndicatorPrivate::handleMove(const QPointF &point)
+{
+ QQuickControlPrivate::handleMove(point);
+ if (interactive)
+ updatePressed(true, point);
+}
+
+void QQuickPageIndicatorPrivate::handleRelease(const QPointF &point)
+{
+ Q_Q(QQuickPageIndicator);
+ QQuickControlPrivate::handleRelease(point);
+ if (interactive) {
+ if (pressedItem && contentItem)
+ q->setCurrentIndex(contentItem->childItems().indexOf(pressedItem));
+ updatePressed(false);
+ }
+}
+
+void QQuickPageIndicatorPrivate::handleUngrab()
+{
+ QQuickControlPrivate::handleUngrab();
+ if (interactive)
+ updatePressed(false);
+}
+
+QQuickItem *QQuickPageIndicatorPrivate::itemAt(const QPointF &pos) const
{
Q_Q(const QQuickPageIndicator);
if (!contentItem || !q->contains(pos))
@@ -144,7 +181,7 @@ QQuickItem *QQuickPageIndicatorPrivate::itemAt(const QPoint &pos) const
return nearest;
}
-void QQuickPageIndicatorPrivate::updatePressed(bool pressed, const QPoint &pos)
+void QQuickPageIndicatorPrivate::updatePressed(bool pressed, const QPointF &pos)
{
QQuickItem *prevItem = pressedItem;
pressedItem = pressed ? itemAt(pos) : nullptr;
@@ -298,42 +335,6 @@ void QQuickPageIndicator::contentItemChange(QQuickItem *newItem, QQuickItem *old
QQuickItemPrivate::get(newItem)->addItemChangeListener(d, QQuickItemPrivate::Children);
}
-void QQuickPageIndicator::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive) {
- d->updatePressed(true, event->pos());
- event->accept();
- }
-}
-
-void QQuickPageIndicator::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive) {
- d->updatePressed(true, event->pos());
- event->accept();
- }
-}
-
-void QQuickPageIndicator::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive) {
- if (d->pressedItem)
- setCurrentIndex(d->contentItem->childItems().indexOf(d->pressedItem));
- d->updatePressed(false);
- event->accept();
- }
-}
-
-void QQuickPageIndicator::mouseUngrabEvent()
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive)
- d->updatePressed(false);
-}
-
#if QT_CONFIG(accessibility)
QAccessible::Role QQuickPageIndicator::accessibleRole() const
{