summaryrefslogtreecommitdiffstats
path: root/src/charts/axis/chartaxiselement.cpp
diff options
context:
space:
mode:
authorDimitrios Apostolou <jimis@qt.io>2021-05-20 21:59:20 +0200
committerDimitrios Apostolou <jimis@qt.io>2021-05-21 15:26:10 +0200
commit0d1f32381d70f0f551fd3a02040650938cd8ac6d (patch)
tree703f3dd0474b4bd5a49e0cc7e99e73853e817204 /src/charts/axis/chartaxiselement.cpp
parentafe2683066ab3bb68f0bb22b2a125da2af3447af (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.cpp16
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;