summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/abstract3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-15 09:43:29 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-15 13:28:41 +0200
commitde93a42512e58c598427178373f0e3e59b04dec7 (patch)
tree92f5991aee835da5627e000a991c56f4c075f169 /src/datavisualization/engine/abstract3dcontroller.cpp
parent64d6b482bfb9dbacd548b72cb9c073513f6aa56f (diff)
Better control of series ordering and 'primary' series for bars
Task-number: QTRD-2578 Change-Id: Icbd945596334afb03d81f3b1d6a72399077455db Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index 454ff7a4..82d60865 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -97,15 +97,30 @@ void Abstract3DController::setRenderer(Abstract3DRenderer *renderer)
void Abstract3DController::addSeries(QAbstract3DSeries *series)
{
- if (series && !m_seriesList.contains(series)) {
- int oldSize = m_seriesList.size();
- m_seriesList.append(series);
- series->d_ptr->setController(this);
- QObject::connect(series, &QAbstract3DSeries::visibilityChanged,
- this, &Abstract3DController::handleSeriesVisibilityChanged);
+ insertSeries(m_seriesList.size(), series);
+}
+
+void Abstract3DController::insertSeries(int index, QAbstract3DSeries *series)
+{
+ if (series) {
+ if (m_seriesList.contains(series)) {
+ int oldIndex = m_seriesList.indexOf(series);
+ if (index != oldIndex) {
+ m_seriesList.removeOne(series);
+ if (oldIndex < index)
+ index--;
+ m_seriesList.insert(index, series);
+ }
+ } else {
+ int oldSize = m_seriesList.size();
+ m_seriesList.insert(index, series);
+ series->d_ptr->setController(this);
+ QObject::connect(series, &QAbstract3DSeries::visibilityChanged,
+ this, &Abstract3DController::handleSeriesVisibilityChanged);
+ series->d_ptr->resetToTheme(*m_themeManager->activeTheme(), oldSize, false);
+ }
if (series->isVisible())
handleSeriesVisibilityChangedBySender(series);
- series->d_ptr->resetToTheme(*m_themeManager->activeTheme(), oldSize, false);
}
}