diff options
Diffstat (limited to 'src/datavisualization/engine')
5 files changed, 26 insertions, 0 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index 6b6f154d..78ac135b 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -911,6 +911,16 @@ void Abstract3DController::deleteCustomItem(const QVector3D &position) } } +void Abstract3DController::releaseCustomItem(QCustom3DItem *item) +{ + if (item && m_customItems.contains(item)) { + m_customItems.removeOne(item); + item->setParent(0); + m_isCustomDataDirty = true; + emitNeedRender(); + } +} + void Abstract3DController::handleAxisTitleChanged(const QString &title) { Q_UNUSED(title) diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h index 41c75d8e..79320c25 100644 --- a/src/datavisualization/engine/abstract3dcontroller_p.h +++ b/src/datavisualization/engine/abstract3dcontroller_p.h @@ -244,6 +244,7 @@ public: void deleteCustomItems(); void deleteCustomItem(QCustom3DItem *item); void deleteCustomItem(const QVector3D &position); + void releaseCustomItem(QCustom3DItem *item); int selectedLabelIndex() const; QAbstract3DAxis *selectedAxis() const; diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index bcf03ed7..6dcc46df 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -551,6 +551,7 @@ void Abstract3DRenderer::addCustomItem(QCustom3DItem *item) { //item->d_ptr->clearTextureImage(); QVector3D translation = convertPositionToTranslation(item->position()); newItem->setTranslation(translation); + newItem->setVisible(item->isVisible()); m_customRenderCache.append(newItem); } @@ -580,6 +581,9 @@ void Abstract3DRenderer::drawCustomItems(RenderingState state, // Draw custom items foreach (CustomRenderItem *item, m_customRenderCache) { + if (!item->isVisible()) + continue; + QMatrix4x4 modelMatrix; QMatrix4x4 itModelMatrix; QMatrix4x4 MVPMatrix; diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp index b3a788cb..9818d176 100644 --- a/src/datavisualization/engine/qabstract3dgraph.cpp +++ b/src/datavisualization/engine/qabstract3dgraph.cpp @@ -427,6 +427,16 @@ void QAbstract3DGraph::removeCustomItemAt(const QVector3D &position) } /*! + * Gets ownership of given \a item back and removes the \a item from the graph. + * + * \since Qt Data Visualization 1.1 + */ +void QAbstract3DGraph::releaseCustomItem(QCustom3DItem *item) +{ + return d_ptr->m_visualController->releaseCustomItem(item); +} + +/*! * Can be used to query the index of the selected label after receiving elementSelected signal with * any label type. Selection is valid until the next elementSelected signal. * diff --git a/src/datavisualization/engine/qabstract3dgraph.h b/src/datavisualization/engine/qabstract3dgraph.h index bfc03cc1..23dba269 100644 --- a/src/datavisualization/engine/qabstract3dgraph.h +++ b/src/datavisualization/engine/qabstract3dgraph.h @@ -114,6 +114,7 @@ public: void removeCustomItems(); void removeCustomItem(QCustom3DItem *item); void removeCustomItemAt(const QVector3D &position); + void releaseCustomItem(QCustom3DItem *item); int selectedLabelIndex() const; QAbstract3DAxis *selectedAxis() const; |