aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickdial.cpp
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2016-08-10 12:02:45 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-08-10 10:48:49 +0000
commita03b6fec6b3551a6302aa1f8d7f3b0044cf27c4b (patch)
tree56dd26e5e334b7ab393df6fd585118485e56f645 /src/quicktemplates2/qquickdial.cpp
parent37b714d3e09f839553e9d4a151b44b647e39c548 (diff)
Dial: fix stepSize handling
As was done in for Slider in c4c803ce4: The correct formula for calculating the "range" or "span" is to-from, not from+(to-from), which is used in the formula for calculating value. Task-number: QTBUG-55228 Change-Id: Ic5463ef5ac5566efc5996aadd9ae39ec108d778f Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickdial.cpp')
-rw-r--r--src/quicktemplates2/qquickdial.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickdial.cpp b/src/quicktemplates2/qquickdial.cpp
index 3932fd05..de220853 100644
--- a/src/quicktemplates2/qquickdial.cpp
+++ b/src/quicktemplates2/qquickdial.cpp
@@ -126,9 +126,15 @@ qreal QQuickDialPrivate::valueAt(qreal position) const
qreal QQuickDialPrivate::snapPosition(qreal position) const
{
- if (qFuzzyIsNull(stepSize))
+ const qreal range = to - from;
+ if (qFuzzyIsNull(range))
return position;
- return qRound(position / stepSize) * stepSize;
+
+ const qreal effectiveStep = stepSize / range;
+ if (qFuzzyIsNull(effectiveStep))
+ return position;
+
+ return qRound(position / effectiveStep) * effectiveStep;
}
qreal QQuickDialPrivate::positionAt(const QPoint &point) const