diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-23 15:29:05 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-24 12:03:32 +0000 |
commit | d0ab538c1ffadecfe0aa7130918726de7126dd16 (patch) | |
tree | da285d104b11d8210bbfa95d4a8285905d7b17e9 /src | |
parent | 1d5b91dd2cece48802b6003eac2b2bf4bdd0d69d (diff) |
Slider: add wheel support
Change-Id: I413d8c853bfe3cc748584dfebd28172ead89d638
Task-number: QTBUG-50221
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/templates/qquickslider.cpp | 14 | ||||
-rw-r--r-- | src/templates/qquickslider_p.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/templates/qquickslider.cpp b/src/templates/qquickslider.cpp index 261c1577..395725eb 100644 --- a/src/templates/qquickslider.cpp +++ b/src/templates/qquickslider.cpp @@ -565,6 +565,20 @@ void QQuickSlider::mouseUngrabEvent() setPressed(false); } +void QQuickSlider::wheelEvent(QWheelEvent *event) +{ + Q_D(QQuickSlider); + 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 QQuickSlider::mirrorChange() { QQuickControl::mirrorChange(); diff --git a/src/templates/qquickslider_p.h b/src/templates/qquickslider_p.h index b348baa9..a6231d09 100644 --- a/src/templates/qquickslider_p.h +++ b/src/templates/qquickslider_p.h @@ -133,6 +133,8 @@ protected: void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void mouseUngrabEvent() override; + void wheelEvent(QWheelEvent *event) override; + void mirrorChange() override; void componentComplete() override; |