summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/axisrendercache.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-26 09:52:28 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-26 12:26:22 +0200
commit1e99ff2c532977d21776f5f363b8171ef147a7d9 (patch)
treeedd5a350afa5241019a7dfed1c723587f3d82265 /src/datavisualization/engine/axisrendercache.cpp
parentb36b9eb7c65e3a4f6972d2f2145722470d1ad29b (diff)
Make axis labels more accurate by using qreals for label values
Also refactor axis formatter sub grid array to be one dimensional. There is no need to know which segment each sub grid line belongs to. Change-Id: Ie9813088650fcc0ca844f3c358ea1abae9258367 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/axisrendercache.cpp')
-rw-r--r--src/datavisualization/engine/axisrendercache.cpp37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/datavisualization/engine/axisrendercache.cpp b/src/datavisualization/engine/axisrendercache.cpp
index 1b4fd52d..8e78522a 100644
--- a/src/datavisualization/engine/axisrendercache.cpp
+++ b/src/datavisualization/engine/axisrendercache.cpp
@@ -119,29 +119,28 @@ void AxisRenderCache::updateAllPositions()
// by caching all grid and subgrid positions into a single vector.
// If subgrid lines are ever themed separately, this array will probably become obsolete.
if (m_formatter) {
- int subGridCount = m_subSegmentCount - 1;
- int fullSize = m_segmentCount + 1 + (m_segmentCount * subGridCount);
+ int gridCount = m_formatter->gridPositions().size();
+ int subGridCount = m_formatter->subGridPositions().size();
+ int labelCount = m_formatter->labelPositions().size();
+ int fullSize = gridCount + subGridCount;
+
m_adjustedGridLinePositions.resize(fullSize);
- m_adjustedLabelPositions.resize(m_segmentCount + 1);
+ m_adjustedLabelPositions.resize(labelCount);
int index = 0;
- int segment = 0;
- for (; segment < m_segmentCount; segment++) {
- m_adjustedLabelPositions[segment] =
- m_formatter->labelPositions().at(segment) * m_scale + m_translate;
+ int grid = 0;
+ int label = 0;
+ for (; label < labelCount; label++) {
+ m_adjustedLabelPositions[label] =
+ m_formatter->labelPositions().at(label) * m_scale + m_translate;
+ }
+ for (; grid < gridCount; grid++) {
m_adjustedGridLinePositions[index++] =
- m_formatter->gridPositions().at(segment) * m_scale + m_translate;
- if (subGridCount > 0) {
- for (int subGrid = 0; subGrid < subGridCount; subGrid++) {
- m_adjustedGridLinePositions[index++] =
- m_formatter->subGridPositions().at(segment).at(subGrid) * m_scale + m_translate;
- }
- }
+ m_formatter->gridPositions().at(grid) * m_scale + m_translate;
+ }
+ for (int subGrid = 0; subGrid < subGridCount; subGrid++) {
+ m_adjustedGridLinePositions[index++] =
+ m_formatter->subGridPositions().at(subGrid) * m_scale + m_translate;
}
- // Last gridline
- m_adjustedLabelPositions[segment] =
- m_formatter->labelPositions().at(segment) * m_scale + m_translate;
- m_adjustedGridLinePositions[index] =
- m_formatter->gridPositions().at(segment) * m_scale + m_translate;
m_positionsDirty = false;
}