diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-15 12:48:13 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-11-20 09:34:06 +0200 |
commit | 51d4a9fcba6089ba433ae126f554b50979220d07 (patch) | |
tree | 5ffdabb461efc3989224226b600a649d395ef80a /src/datavisualization/engine/abstract3dcontroller.cpp | |
parent | 96995bda0da7ecf99d2ac4a4e417545c3506bf02 (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.cpp | 17 |
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(); } |