diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2014-06-06 13:16:46 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@digia.com> | 2014-06-06 13:50:51 +0300 |
commit | 9a409f001e2a7a5cc1c28654d6a7d3cb2896afe2 (patch) | |
tree | 264bc938e7732f610d94640be150fc103d117c39 | |
parent | 9dcd2a7c347e34f8cf2927d8603aa75f04251070 (diff) |
Fix QValueAxis range setting
As explained in Qt documentation, comparing values where either of them
is 0.0 with qFuzzyCompare does not work. Adding 1 to both values fixes
the problem.
Task-number: QTRD-3172
Change-Id: I3e7be0ea3c53947b31fd45abe20b00773bf474b5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
-rw-r--r-- | src/axis/valueaxis/qvalueaxis.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/axis/valueaxis/qvalueaxis.cpp b/src/axis/valueaxis/qvalueaxis.cpp index 09b55d14..3a22a981 100644 --- a/src/axis/valueaxis/qvalueaxis.cpp +++ b/src/axis/valueaxis/qvalueaxis.cpp @@ -367,13 +367,25 @@ void QValueAxisPrivate::setRange(qreal min, qreal max) if (min > max) return; - if (!qFuzzyCompare(m_min,min)) { + bool changeMin = false; + if (m_min == 0 || min == 0) + changeMin = !qFuzzyCompare(1 + m_min, 1 + min); + else + changeMin = !qFuzzyCompare(m_min, min); + + bool changeMax = false; + if (m_max == 0 || max == 0) + changeMax = !qFuzzyCompare(1 + m_max, 1 + max); + else + changeMax = !qFuzzyCompare(m_max, max); + + if (changeMin) { m_min = min; changed = true; emit q->minChanged(min); } - if (!qFuzzyCompare(m_max,max)) { + if (changeMax) { m_max = max; changed = true; emit q->maxChanged(max); |