diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-14 13:40:35 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-05-14 13:44:46 +0300 |
commit | 8015a58ea819b41e0a896ea9e7d57d7f3a9f1c5f (patch) | |
tree | 486a6017c2bd0fdaeb408aed46b76587ddd034dd /src/datavisualization/engine | |
parent | 824cf363f6ab999d2fc38ebdab1f7faae5559ad0 (diff) |
Added visible flag and possibility to release ownership of custom item
Task-number: QTRD-3080
Change-Id: I198930c48fe9bce6a158406aff5fbf31272b9afe
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
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; |