diff options
Diffstat (limited to 'src/charts/axis/chartaxiselement.cpp')
-rw-r--r-- | src/charts/axis/chartaxiselement.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/charts/axis/chartaxiselement.cpp b/src/charts/axis/chartaxiselement.cpp index 33a31242..2a874216 100644 --- a/src/charts/axis/chartaxiselement.cpp +++ b/src/charts/axis/chartaxiselement.cpp @@ -339,7 +339,7 @@ bool ChartAxisElement::isEmpty() { return axisGeometry().isEmpty() || gridGeometry().isEmpty() - || qFuzzyCompare(min(), max()); + || qFuzzyIsNull(max() - min()); } qreal ChartAxisElement::min() const @@ -430,13 +430,11 @@ QStringList ChartAxisElement::createValueLabels(qreal min, qreal max, int ticks, labels << presenter()->numberToString(value, 'f', n); } } else { - qreal value = tickAnchor; - if (value > min) - value = value - int((value - min) / tickInterval) * tickInterval; - else - value = value + qCeil((min - value) / tickInterval) * tickInterval; + const qreal ticksFromAnchor = (tickAnchor - min) / tickInterval; + const qreal firstMajorTick = tickAnchor - std::floor(ticksFromAnchor) * tickInterval; - while (value <= max || qFuzzyCompare(value, max)) { + qreal value = firstMajorTick; + while (value <= max) { labels << presenter()->numberToString(value, 'f', n); value += tickInterval; } @@ -472,13 +470,11 @@ QStringList ChartAxisElement::createValueLabels(qreal min, qreal max, int ticks, labels << formatLabel(formatSpec, array, value, precision, preStr, postStr); } } else { - qreal value = tickAnchor; - if (value > min) - value = value - int((value - min) / tickInterval) * tickInterval; - else - value = value + qCeil((min - value) / tickInterval) * tickInterval; + const qreal ticksFromAnchor = (tickAnchor - min) / tickInterval; + const qreal firstMajorTick = tickAnchor - std::floor(ticksFromAnchor) * tickInterval; - while (value <= max || qFuzzyCompare(value, max)) { + qreal value = firstMajorTick; + while (value <= max) { labels << formatLabel(formatSpec, array, value, precision, preStr, postStr); value += tickInterval; } |