diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-23 15:35:28 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-24 12:03:28 +0000 |
commit | 1d5b91dd2cece48802b6003eac2b2bf4bdd0d69d (patch) | |
tree | 4c9f7a5d20b36ae98935498a45359f23c14bca84 /src | |
parent | cd58c278f30bdd7f806e9a15552cb3954d336d15 (diff) |
SpinBox: add wheel support
Change-Id: I37c732814783a382a078338aeea37c7b417a08d1
Task-number: QTBUG-50220
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/templates/qquickspinbox.cpp | 13 | ||||
-rw-r--r-- | src/templates/qquickspinbox_p.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/templates/qquickspinbox.cpp b/src/templates/qquickspinbox.cpp index 821c4fd0..78a2d245 100644 --- a/src/templates/qquickspinbox.cpp +++ b/src/templates/qquickspinbox.cpp @@ -627,6 +627,19 @@ void QQuickSpinBox::timerEvent(QTimerEvent *event) } } +void QQuickSpinBox::wheelEvent(QWheelEvent *event) +{ + Q_D(QQuickSpinBox); + QQuickControl::wheelEvent(event); + if (d->wheelEnabled) { + const int oldValue = d->value; + const QPointF angle = event->angleDelta(); + const qreal delta = (qFuzzyIsNull(angle.y()) ? angle.x() : angle.y()) / QWheelEvent::DefaultDeltasPerStep; + setValue(oldValue + qRound(d->effectiveStepSize() * delta)); + event->setAccepted(d->value != oldValue); + } +} + void QQuickSpinBox::itemChange(ItemChange change, const ItemChangeData &value) { Q_D(QQuickSpinBox); diff --git a/src/templates/qquickspinbox_p.h b/src/templates/qquickspinbox_p.h index 67a1772c..60df92bb 100644 --- a/src/templates/qquickspinbox_p.h +++ b/src/templates/qquickspinbox_p.h @@ -125,6 +125,7 @@ protected: void mouseReleaseEvent(QMouseEvent *event) override; void mouseUngrabEvent() override; void timerEvent(QTimerEvent *event) override; + void wheelEvent(QWheelEvent *event) override; void itemChange(ItemChange change, const ItemChangeData &value) override; void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override; |