diff options
Diffstat (limited to 'src/datavisualization')
-rw-r--r-- | src/datavisualization/engine/bars3drenderer.cpp | 11 | ||||
-rw-r--r-- | src/datavisualization/engine/q3dscene.cpp | 9 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 5 |
3 files changed, 23 insertions, 2 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(), diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp index 3f2deec0..081868ef 100644 --- a/src/datavisualization/engine/q3dscene.cpp +++ b/src/datavisualization/engine/q3dscene.cpp @@ -98,7 +98,10 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION /*! * \qmlproperty bool Scene3D::slicingActive * - * This property contains whether 2D slicing view is currently active or not. + * This property contains whether 2D slicing view is currently active or not. If setting it, you + * must make sure AbstractGraph3D::selectionMode has + * \l{QAbstract3DGraph::SelectionSlice}{AbstractGraph3D.SelectionSlice} flag set in conjunction + * with either row or column selection mode, and there is a valid selection. * \note Not all visualizations support the 2D slicing view. */ @@ -291,7 +294,9 @@ QPoint Q3DScene::invalidSelectionPoint() /*! * \property Q3DScene::slicingActive * - * This property contains whether 2D slicing view is currently active or not. + * This property contains whether 2D slicing view is currently active or not. If setting it, you + * must make sure QAbstract3DGraph::selectionMode has QAbstract3DGraph::SelectionSlice flag set + * in conjunction with either row or column selection mode, and there is a valid selection. * \note Not all visualizations support the 2D slicing view. */ bool Q3DScene::isSlicingActive() const diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index fb7322cc..19ae0de4 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -782,6 +782,11 @@ void Surface3DRenderer::render(GLuint defaultFboHandle) void Surface3DRenderer::drawSlicedScene() { + if (!m_cachedSelectionMode.testFlag(QAbstract3DGraph::SelectionSlice)) { + qWarning("Selection mode QAbstract3DGraph::SelectionSlice not set. It must be set before calling setSlicingActive(true)."); + return; + } + QVector3D lightPos; QVector4D lightColor = Utils::vectorFromColor(m_cachedTheme->lightColor()); |