diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-11-29 13:04:10 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-11-29 13:19:28 +0000 |
commit | da0570d1ddf6c786b4bfdd0a1172b36ecc66f2a2 (patch) | |
tree | 210a71ded0651cf6e6cbe110ecdc7cc8a49cd59c /src/quicktemplates2/qquickdial.cpp | |
parent | 661bba4f11666d5d9018a6a1d16a71c324bdf123 (diff) |
Dial: add missing wheel handling
[ChangeLog][Controls][Dial] Added support for wheel handling when
wheelEnabled is set to true.
Change-Id: If0bc2f0ea9d7cde7726739cdfdbd795c908981f0
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickdial.cpp')
-rw-r--r-- | src/quicktemplates2/qquickdial.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickdial.cpp b/src/quicktemplates2/qquickdial.cpp index 79aff781..2b9f83a4 100644 --- a/src/quicktemplates2/qquickdial.cpp +++ b/src/quicktemplates2/qquickdial.cpp @@ -606,6 +606,20 @@ void QQuickDial::mouseUngrabEvent() setPressed(false); } +void QQuickDial::wheelEvent(QWheelEvent *event) +{ + Q_D(QQuickDial); + QQuickControl::wheelEvent(event); + if (d->wheelEnabled) { + const qreal oldValue = d->value; + const QPointF angle = event->angleDelta(); + const qreal delta = (qFuzzyIsNull(angle.y()) ? angle.x() : angle.y()) / QWheelEvent::DefaultDeltasPerStep; + const qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize; + setValue(oldValue + step * delta); + event->setAccepted(!qFuzzyCompare(d->value, oldValue)); + } +} + void QQuickDial::mirrorChange() { QQuickControl::mirrorChange(); |