diff options
author | Dimitrios Apostolou <jimis@qt.io> | 2021-05-20 21:59:20 +0200 |
---|---|---|
committer | Dimitrios Apostolou <jimis@qt.io> | 2021-05-21 15:26:10 +0200 |
commit | 0d1f32381d70f0f551fd3a02040650938cd8ac6d (patch) | |
tree | 703f3dd0474b4bd5a49e0cc7e99e73853e817204 /src/charts/axis/chartaxiselement.cpp | |
parent | afe2683066ab3bb68f0bb22b2a125da2af3447af (diff) |
Replace code with simpler but equivalent code
The if-branching is unnecessary because
ceil(a-b) == -floor(b-a)
Also add comments to clarify subtle differences in seemingly
identical code snippets.
Change-Id: Idfd72e4aecf53805183f5b2741336d805fbfbb6a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/charts/axis/chartaxiselement.cpp')
-rw-r--r-- | src/charts/axis/chartaxiselement.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/charts/axis/chartaxiselement.cpp b/src/charts/axis/chartaxiselement.cpp index b17f5cdb..d036041c 100644 --- a/src/charts/axis/chartaxiselement.cpp +++ b/src/charts/axis/chartaxiselement.cpp @@ -430,12 +430,10 @@ QStringList ChartAxisElement::createValueLabels(qreal min, qreal max, int ticks, labels << presenter()->numberToString(value, 'f', n); } } else { - qreal value = tickAnchor; - if (value > min) - value = value - std::floor((value - min) / tickInterval) * tickInterval; - else - value = value + std::ceil((min - value) / tickInterval) * tickInterval; + const qreal ticksFromAnchor = (tickAnchor - min) / tickInterval; + const qreal firstMajorTick = tickAnchor - std::floor(ticksFromAnchor) * tickInterval; + qreal value = firstMajorTick; while (value <= max) { labels << presenter()->numberToString(value, 'f', n); value += tickInterval; @@ -472,12 +470,10 @@ 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 - std::floor((value - min) / tickInterval) * tickInterval; - else - value = value + std::ceil((min - value) / tickInterval) * tickInterval; + const qreal ticksFromAnchor = (tickAnchor - min) / tickInterval; + const qreal firstMajorTick = tickAnchor - std::floor(ticksFromAnchor) * tickInterval; + qreal value = firstMajorTick; while (value <= max) { labels << formatLabel(formatSpec, array, value, precision, preStr, postStr); value += tickInterval; |