diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-19 17:00:14 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-20 06:12:48 +0000 |
commit | 3824cdb9c43ab26fcf5c2f6dcc267d18c4aa4b2b (patch) | |
tree | 49c348a04f005f9e3a3347c7a027d06ee79dc55e | |
parent | 211014bfcac08ae763f8b8c8497425c48eac6a77 (diff) |
QQuickAbstractButton: align handleXxx() with QQuickControl
Match the signature of the upcoming QQuickControlPrivate::handleXxx()
virtuals.
Change-Id: Ieed3587443bea715b1b6eb2cc334130b2df7deb8
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 31 | ||||
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton_p_p.h | 6 |
2 files changed, 18 insertions, 19 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index de954570..8f2fb3cf 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -124,13 +124,13 @@ QQuickAbstractButtonPrivate::QQuickAbstractButtonPrivate() holdTimer(0), delayTimer(0), repeatTimer(0), - repeatButton(Qt::NoButton), + pressButtons(Qt::NoButton), indicator(nullptr), group(nullptr) { } -void QQuickAbstractButtonPrivate::handlePress(const QPointF &point, Qt::MouseButton button, Qt::MouseButtons buttons) +void QQuickAbstractButtonPrivate::handlePress(const QPointF &point) { Q_Q(QQuickAbstractButton); pressPoint = point; @@ -138,14 +138,12 @@ void QQuickAbstractButtonPrivate::handlePress(const QPointF &point, Qt::MouseBut emit q->pressed(); - if (autoRepeat) { + if (autoRepeat) startRepeatDelay(); - repeatButton = button; - } else if (Qt::LeftButton == (buttons & Qt::LeftButton)) { + else if (touchId != -1 || Qt::LeftButton == (pressButtons & Qt::LeftButton)) startPressAndHold(); - } else { + else stopPressAndHold(); - } } void QQuickAbstractButtonPrivate::handleMove(const QPointF &point) @@ -164,6 +162,7 @@ void QQuickAbstractButtonPrivate::handleRelease(const QPointF &point) Q_Q(QQuickAbstractButton); bool wasPressed = pressed; q->setPressed(false); + pressButtons = Qt::NoButton; if (!wasHeld && (keepPressed || q->contains(point))) q->nextCheckState(); @@ -182,9 +181,10 @@ void QQuickAbstractButtonPrivate::handleRelease(const QPointF &point) stopPressAndHold(); } -void QQuickAbstractButtonPrivate::handleCancel() +void QQuickAbstractButtonPrivate::handleUngrab() { Q_Q(QQuickAbstractButton); + pressButtons = Qt::NoButton; if (!pressed) return; @@ -577,7 +577,7 @@ void QQuickAbstractButton::focusOutEvent(QFocusEvent *event) Q_D(QQuickAbstractButton); QQuickControl::focusOutEvent(event); if (d->touchId == -1) // don't ungrab on multi-touch if another control gets focused - d->handleCancel(); + d->handleUngrab(); } void QQuickAbstractButton::keyPressEvent(QKeyEvent *event) @@ -588,10 +588,8 @@ void QQuickAbstractButton::keyPressEvent(QKeyEvent *event) d->pressPoint = QPoint(qRound(width() / 2), qRound(height() / 2)); setPressed(true); - if (d->autoRepeat) { + if (d->autoRepeat) d->startRepeatDelay(); - d->repeatButton = Qt::NoButton; - } emit pressed(); event->accept(); @@ -619,7 +617,8 @@ void QQuickAbstractButton::mousePressEvent(QMouseEvent *event) { Q_D(QQuickAbstractButton); QQuickControl::mousePressEvent(event); - d->handlePress(event->localPos(), event->button(), event->buttons()); + d->pressButtons = event->buttons(); + d->handlePress(event->localPos()); } void QQuickAbstractButton::mouseMoveEvent(QMouseEvent *event) @@ -646,7 +645,7 @@ void QQuickAbstractButton::mouseUngrabEvent() { Q_D(QQuickAbstractButton); QQuickControl::mouseUngrabEvent(); - d->handleCancel(); + d->handleUngrab(); } void QQuickAbstractButton::timerEvent(QTimerEvent *event) @@ -707,7 +706,7 @@ void QQuickAbstractButton::touchEvent(QTouchEvent *event) break; case QEvent::TouchCancel: - d->handleCancel(); + d->handleUngrab(); break; default: @@ -721,7 +720,7 @@ void QQuickAbstractButton::touchUngrabEvent() { Q_D(QQuickAbstractButton); QQuickControl::touchUngrabEvent(); - d->handleCancel(); + d->handleUngrab(); } void QQuickAbstractButton::buttonChange(ButtonChange change) diff --git a/src/quicktemplates2/qquickabstractbutton_p_p.h b/src/quicktemplates2/qquickabstractbutton_p_p.h index 6d149b4f..574027f0 100644 --- a/src/quicktemplates2/qquickabstractbutton_p_p.h +++ b/src/quicktemplates2/qquickabstractbutton_p_p.h @@ -67,10 +67,10 @@ public: return button->d_func(); } - virtual void handlePress(const QPointF &point, Qt::MouseButton button = Qt::LeftButton, Qt::MouseButtons buttons = Qt::LeftButton); + virtual void handlePress(const QPointF &point); virtual void handleMove(const QPointF &point); virtual void handleRelease(const QPointF &point); - virtual void handleCancel(); + virtual void handleUngrab(); bool isPressAndHoldConnected(); void startPressAndHold(); @@ -99,7 +99,7 @@ public: int delayTimer; int repeatTimer; QPointF pressPoint; - Qt::MouseButton repeatButton; + Qt::MouseButtons pressButtons; QQuickItem *indicator; QQuickButtonGroup *group; }; |