summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-05-30 14:37:43 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-06-02 08:11:46 +0300
commit5170c3fb57210a89978501108e07c598fb083fbc (patch)
treeaec503e77412c25789cde8e187eb0c415d9ef1e2 /src/datavisualization/engine
parentaac8c10200d1cc9354c0f5190adb858021f77e6b (diff)
Fix various issues
Change-Id: I4a6d4775f3ca578370a9ce23491bddcb0f5486ec Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp4
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp4
-rw-r--r--src/datavisualization/engine/abstract3drenderer_p.h2
-rw-r--r--src/datavisualization/engine/axisrendercache_p.h9
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp18
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp7
6 files changed, 29 insertions, 15 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index ea084f9f..13708896 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -45,6 +45,7 @@ Abstract3DController::Abstract3DController(QRect initialViewport, Q3DScene *scen
m_selectionMode(QAbstract3DGraph::SelectionItem),
m_shadowQuality(QAbstract3DGraph::ShadowQualityMedium),
m_useOrthoProjection(false),
+ m_aspectRatio(2.0f),
m_scene(scene),
m_activeInputHandler(0),
m_axisX(0),
@@ -58,8 +59,7 @@ Abstract3DController::Abstract3DController(QRect initialViewport, Q3DScene *scen
m_renderPending(false),
m_measureFps(false),
m_numFrames(0),
- m_currentFps(0.0),
- m_aspectRatio(2.0f)
+ m_currentFps(0.0)
{
if (!m_scene)
m_scene = new Q3DScene;
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp
index 0f9109db..9a063e0c 100644
--- a/src/datavisualization/engine/abstract3drenderer.cpp
+++ b/src/datavisualization/engine/abstract3drenderer.cpp
@@ -54,13 +54,13 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller)
m_visibleSeriesCount(0),
m_customItemShader(0),
m_useOrthoProjection(false),
- m_graphAspectRatio(2.0f),
m_xFlipped(false),
m_yFlipped(false),
m_zFlipped(false),
m_backgroundObj(0),
m_gridLineObj(0),
- m_labelObj(0)
+ m_labelObj(0),
+ m_graphAspectRatio(2.0f)
{
QObject::connect(m_drawer, &Drawer::drawerChanged, this, &Abstract3DRenderer::updateTextures);
QObject::connect(this, &Abstract3DRenderer::needRender, controller,
diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h
index 35b6ff27..664933bc 100644
--- a/src/datavisualization/engine/abstract3drenderer_p.h
+++ b/src/datavisualization/engine/abstract3drenderer_p.h
@@ -225,8 +225,8 @@ protected:
bool m_useOrthoProjection;
bool m_xFlipped;
- bool m_zFlipped;
bool m_yFlipped;
+ bool m_zFlipped;
ObjectHelper *m_backgroundObj; // Shared reference
ObjectHelper *m_gridLineObj; // Shared reference
diff --git a/src/datavisualization/engine/axisrendercache_p.h b/src/datavisualization/engine/axisrendercache_p.h
index 0f82fda0..0e4492b4 100644
--- a/src/datavisualization/engine/axisrendercache_p.h
+++ b/src/datavisualization/engine/axisrendercache_p.h
@@ -80,7 +80,14 @@ public:
inline float gridLinePosition(int index) { return m_adjustedGridLinePositions.at(index); }
inline int gridLineCount() { return m_adjustedGridLinePositions.size(); }
inline float labelPosition(int index) { return m_adjustedLabelPositions.at(index); }
- inline int labelCount() { return m_adjustedLabelPositions.size(); }
+ inline int labelCount() {
+ // Some value axis formatters may opt to not show all labels,
+ // so use positions array for determining count in that case.
+ if (m_type == QAbstract3DAxis::AxisTypeValue)
+ return m_adjustedLabelPositions.size();
+ else
+ return m_labels.size();
+ }
void updateAllPositions();
inline bool positionsDirty() const { return m_positionsDirty; }
inline void markPositionsDirty() { m_positionsDirty = true; }
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index 73a2eb3a..afa249c7 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -298,8 +298,11 @@ void Bars3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesList)
m_haveGradientSeries = true;
}
}
- if (noSelection && !selectionLabel().isEmpty())
- m_selectionLabelDirty = true;
+ if (noSelection) {
+ if (!selectionLabel().isEmpty())
+ m_selectionLabelDirty = true;
+ m_selectedSeriesCache = 0;
+ }
}
SeriesRenderCache *Bars3DRenderer::createNewCache(QAbstract3DSeries *series)
@@ -2058,12 +2061,13 @@ void Bars3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCamer
}
QQuaternion totalRotation = Utils::calculateRotation(labelRotation);
+ labelCount = qMin(m_axisCacheZ.labelCount(), m_cachedColumnCount);
if (m_zFlipped) {
startIndex = 0;
- endIndex = m_cachedRowCount;
+ endIndex = labelCount;
indexStep = 1;
} else {
- startIndex = m_cachedRowCount - 1;
+ startIndex = labelCount - 1;
endIndex = -1;
indexStep = -1;
}
@@ -2175,14 +2179,14 @@ void Bars3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCamer
}
totalRotation = Utils::calculateRotation(labelRotation);
-
+ labelCount = qMin(m_axisCacheX.labelCount(), m_cachedColumnCount);
if (m_xFlipped) {
- startIndex = m_cachedColumnCount - 1;
+ startIndex = labelCount - 1;
endIndex = -1;
indexStep = -1;
} else {
startIndex = 0;
- endIndex = m_cachedColumnCount;
+ endIndex = labelCount;
indexStep = 1;
}
for (int column = startIndex; column != endIndex; column = column + indexStep) {
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 10160bed..bd1ba17d 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -227,8 +227,11 @@ void Scatter3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis
else
m_backgroundMargin = defaultMaxSize;
- if (noSelection && !selectionLabel().isEmpty())
- m_selectionLabelDirty = true;
+ if (noSelection) {
+ if (!selectionLabel().isEmpty())
+ m_selectionLabelDirty = true;
+ m_selectedSeriesCache = 0;
+ }
}
SeriesRenderCache *Scatter3DRenderer::createNewCache(QAbstract3DSeries *series)