summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/bars3drenderer.cpp
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-09-16 07:31:30 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-09-16 07:35:50 +0300
commitb6d5edf9775f6bf2aa4f91906763bd1c492d47e7 (patch)
tree84d91e33347564ae5b71f39f6d0f3a6884228b3b /src/datavisualization/engine/bars3drenderer.cpp
parent9cc5a9f312dfb982044f5756bb5b857657378b02 (diff)
Invalid slice usage crash fixed
Task-number: QTRD-3301 Change-Id: I0e39348a2e9392b4c1f0bd7ef26c5613272460e2 Reviewed-by: Pasi Keränen <pasi.keranen@digia.com> Reviewed-by: Titta Heikkala <titta.heikkala@digia.com>
Diffstat (limited to 'src/datavisualization/engine/bars3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp
index 3e83a830..da774239 100644
--- a/src/datavisualization/engine/bars3drenderer.cpp
+++ b/src/datavisualization/engine/bars3drenderer.cpp
@@ -456,6 +456,11 @@ void Bars3DRenderer::render(GLuint defaultFboHandle)
void Bars3DRenderer::drawSlicedScene()
{
+ if (!m_cachedSelectionMode.testFlag(QAbstract3DGraph::SelectionSlice)) {
+ qWarning("Selection mode QAbstract3DGraph::SelectionSlice not set. It must be set before calling setSlicingActive(true).");
+ return;
+ }
+
GLfloat barPosX = 0;
QVector3D lightPos;
QVector4D lightColor = Utils::vectorFromColor(m_cachedTheme->lightColor());
@@ -815,6 +820,12 @@ void Bars3DRenderer::drawSlicedScene()
int labelCount = m_sliceCache->labelItems().size();
for (int labelNo = 0; labelNo < labelCount; labelNo++) {
+ // Check for invalid usage (no selection when setting slicing active)
+ if (!firstVisualSliceArray) {
+ qWarning("No slice data found. Make sure there is a valid selection.");
+ continue;
+ }
+
// Get labels from first series only
const BarRenderSliceItem &item = firstVisualSliceArray->at(labelNo);
m_dummyBarRenderItem.setTranslation(QVector3D(item.translation().x(),