summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 12:48:13 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-20 09:34:06 +0200
commit51d4a9fcba6089ba433ae126f554b50979220d07 (patch)
tree5ffdabb461efc3989224226b600a649d395ef80a /src/datavisualization/engine/abstract3dcontroller.cpp
parent96995bda0da7ecf99d2ac4a4e417545c3506bf02 (diff)
Multi series selection part 1: bars
Task-number: QTRD-2556 Change-Id: I1f537f0b4c299028d4415f074d5eac6552bb3b9b Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
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();
}