summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-28 08:19:37 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-29 09:53:48 +0200
commit527113321ff103835b89543c5d6f670f55b5b0d5 (patch)
tree01b242ef7b1f30a414b718f99f155f19235951bd /src/datavisualization/engine/abstract3dcontroller.cpp
parent85dda87df2d420dc53959e549d24c4b09ce93d57 (diff)
Move series specific visual elements to series, part 1
Meshes moved to series. Task-number: QTRD-2557 Change-Id: I80050e413faf3bc942eb5a5627a66747de5805d8 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp42
1 files changed, 20 insertions, 22 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 302b74ad..b8b2e826 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -52,7 +52,8 @@ Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) :
m_axisZ(0),
m_renderer(0),
m_isDataDirty(true),
- m_isSeriesDirty(true),
+ m_isSeriesVisibilityDirty(true),
+ m_isSeriesVisualsDirty(true),
m_renderPending(false)
{
// Set initial theme
@@ -98,6 +99,8 @@ void Abstract3DController::addSeries(QAbstract3DSeries *series)
if (series && !m_seriesList.contains(series)) {
m_seriesList.append(series);
series->d_ptr->setController(this);
+ QObject::connect(series, &QAbstract3DSeries::visibilityChanged,
+ this, &Abstract3DController::handleSeriesVisibilityChanged);
if (series->isVisible())
handleSeriesVisibilityChangedBySender(series);
}
@@ -107,9 +110,11 @@ void Abstract3DController::removeSeries(QAbstract3DSeries *series)
{
if (series && series->d_ptr->m_controller == this) {
m_seriesList.removeAll(series);
+ QObject::disconnect(series, &QAbstract3DSeries::visibilityChanged,
+ this, &Abstract3DController::handleSeriesVisibilityChanged);
series->d_ptr->setController(0);
m_isDataDirty = true;
- m_isSeriesDirty = true;
+ m_isSeriesVisibilityDirty = true;
emitNeedRender();
}
}
@@ -189,11 +194,6 @@ void Abstract3DController::synchDataToRenderer()
m_changeTracker.selectionModeChanged = false;
}
- if (m_changeTracker.objFileChanged) {
- m_renderer->updateMeshFileName(m_objFile);
- m_changeTracker.objFileChanged = false;
- }
-
if (m_changeTracker.axisXTypeChanged) {
m_renderer->updateAxisType(Q3DAbstractAxis::AxisOrientationX, m_axisX->type());
m_changeTracker.axisXTypeChanged = false;
@@ -337,9 +337,10 @@ void Abstract3DController::synchDataToRenderer()
}
}
- if (m_isSeriesDirty) {
- m_renderer->updateSeries(m_seriesList);
- m_isSeriesDirty = false;
+ if (m_isSeriesVisibilityDirty || m_isSeriesVisualsDirty) {
+ m_renderer->updateSeries(m_seriesList, m_isSeriesVisibilityDirty);
+ m_isSeriesVisibilityDirty = false;
+ m_isSeriesVisualsDirty = false;
}
if (m_isDataDirty) {
@@ -833,24 +834,21 @@ void Abstract3DController::setSlicingActive(bool isSlicing)
emitNeedRender();
}
-void Abstract3DController::setMeshFileName(const QString &fileName)
+Q3DScene *Abstract3DController::scene()
{
- if (fileName != m_objFile) {
- m_objFile = fileName;
- m_changeTracker.objFileChanged = true;
- emit meshFileNameChanged(fileName);
- emitNeedRender();
- }
+ return m_scene;
}
-QString Abstract3DController::meshFileName() const
+void Abstract3DController::markDataDirty()
{
- return m_objFile;
+ m_isDataDirty = true;
+ emitNeedRender();
}
-Q3DScene *Abstract3DController::scene()
+void Abstract3DController::markSeriesVisualsDirty()
{
- return m_scene;
+ m_isSeriesVisualsDirty = true;
+ emitNeedRender();
}
void Abstract3DController::handleAxisTitleChanged(const QString &title)
@@ -1023,7 +1021,7 @@ void Abstract3DController::handleSeriesVisibilityChangedBySender(QObject *sender
Q_UNUSED(sender)
m_isDataDirty = true;
- m_isSeriesDirty = true;
+ m_isSeriesVisibilityDirty = true;
emitNeedRender();
}