summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 625794a5..7f87ac7c 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -51,6 +51,7 @@ Abstract3DController::Abstract3DController(QRect boundRect, QObject *parent) :
m_axisZ(0),
m_renderer(0),
m_isDataDirty(true),
+ m_isSeriesDirty(true),
m_renderPending(false)
{
// Set initial theme
@@ -96,6 +97,8 @@ void Abstract3DController::addSeries(QAbstract3DSeries *series)
if (series && !m_seriesList.contains(series)) {
m_seriesList.append(series);
series->d_ptr->setController(this);
+ if (series->isVisible())
+ handleSeriesVisibilityChangedBySender(series);
}
}
@@ -104,6 +107,9 @@ void Abstract3DController::removeSeries(QAbstract3DSeries *series)
if (series && series->d_ptr->m_controller == this) {
m_seriesList.removeAll(series);
series->d_ptr->setController(0);
+ m_isDataDirty = true;
+ m_isSeriesDirty = true;
+ emitNeedRender();
}
}
@@ -353,9 +359,15 @@ void Abstract3DController::synchDataToRenderer()
}
}
- // TODO: Another (per-series?) flag about series visuals being dirty?
+ if (m_isSeriesDirty) {
+ m_renderer->updateSeries(m_seriesList);
+ m_isSeriesDirty = false;
+ }
+
if (m_isDataDirty) {
- m_renderer->updateSeriesData(m_seriesList);
+ // Series list supplied above in updateSeries() is used to access the data,
+ // so no data needs to be passed in updateData()
+ m_renderer->updateData();
m_isDataDirty = false;
}
}
@@ -1086,6 +1098,7 @@ void Abstract3DController::handleSeriesVisibilityChangedBySender(QObject *sender
Q_UNUSED(sender)
m_isDataDirty = true;
+ m_isSeriesDirty = true;
emitNeedRender();
}