diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-05-30 14:37:43 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-06-02 08:11:46 +0300 |
commit | 5170c3fb57210a89978501108e07c598fb083fbc (patch) | |
tree | aec503e77412c25789cde8e187eb0c415d9ef1e2 /src/datavisualization/engine | |
parent | aac8c10200d1cc9354c0f5190adb858021f77e6b (diff) |
Fix various issues
Change-Id: I4a6d4775f3ca578370a9ce23491bddcb0f5486ec
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
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) |