summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2014-06-06 13:16:46 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2014-06-06 13:50:51 +0300
commit9a409f001e2a7a5cc1c28654d6a7d3cb2896afe2 (patch)
tree264bc938e7732f610d94640be150fc103d117c39
parent9dcd2a7c347e34f8cf2927d8603aa75f04251070 (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.cpp16
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);