aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-02-23 15:29:05 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-02-24 12:03:32 +0000
commitd0ab538c1ffadecfe0aa7130918726de7126dd16 (patch)
treeda285d104b11d8210bbfa95d4a8285905d7b17e9 /src
parent1d5b91dd2cece48802b6003eac2b2bf4bdd0d69d (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.cpp14
-rw-r--r--src/templates/qquickslider_p.h2
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;