summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-05-14 13:40:35 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-05-14 13:44:46 +0300
commit8015a58ea819b41e0a896ea9e7d57d7f3a9f1c5f (patch)
tree486a6017c2bd0fdaeb408aed46b76587ddd034dd /src/datavisualization/engine
parent824cf363f6ab999d2fc38ebdab1f7faae5559ad0 (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')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp10
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h1
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp4
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp10
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.h1
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;