aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-02-23 15:35:28 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-02-24 12:03:28 +0000
commit1d5b91dd2cece48802b6003eac2b2bf4bdd0d69d (patch)
tree4c9f7a5d20b36ae98935498a45359f23c14bca84 /src
parentcd58c278f30bdd7f806e9a15552cb3954d336d15 (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.cpp13
-rw-r--r--src/templates/qquickspinbox_p.h1
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;