diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-15 09:43:29 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-15 13:28:41 +0200 |
commit | de93a42512e58c598427178373f0e3e59b04dec7 (patch) | |
tree | 92f5991aee835da5627e000a991c56f4c075f169 /src/datavisualization/engine/abstract3dcontroller.cpp | |
parent | 64d6b482bfb9dbacd548b72cb9c073513f6aa56f (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.cpp | 29 |
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); } } |