diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-21 08:55:03 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-21 09:41:47 +0200 |
commit | 177f9d385c8cd062c4bad78cf6b794a96fa025ad (patch) | |
tree | 14b362622d07a93ea56b077e23894a7384a3ddaa /src/datavisualization/engine/bars3dcontroller.cpp | |
parent | 818e29d4c4fd4344df20328ec3fe693acc67e11a (diff) |
Selection correction for scatter when data changes
Implements item 3) in QTRD-2645
Task-number: QTRD-264
Change-Id: Ibe758bbfb3b4a74b55589a410b402bbdf07ea64f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/bars3dcontroller.cpp')
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index d85e474c..b0627377 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -70,6 +70,9 @@ void Bars3DController::initializeOpenGL() void Bars3DController::synchDataToRenderer() { + if (!isInitialized()) + return; + // Background change requires reloading the meshes in bar graphs, so dirty the series visuals if (m_themeManager->activeTheme()->d_ptr->m_dirtyBits.backgroundEnabledDirty) { m_isSeriesVisualsDirty = true; @@ -79,9 +82,6 @@ void Bars3DController::synchDataToRenderer() Abstract3DController::synchDataToRenderer(); - if (!isInitialized()) - return; - // Notify changes to renderer if (m_changeTracker.barSpecsChanged) { m_renderer->updateBarSpecs(m_barThicknessRatio, m_barSpacing, m_isBarSpecRelative); @@ -135,12 +135,8 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count) { Q_UNUSED(startIndex) Q_UNUSED(count) - QBar3DSeries *series = static_cast<QBarDataProxy *>(sender())->series(); - if (series->isVisible()) { - adjustAxisRanges(); - m_isDataDirty = true; - } + QBar3DSeries *series = static_cast<QBarDataProxy *>(sender())->series(); if (series == m_selectedBarSeries) { // If rows removed from selected series before the selection, adjust the selection int selectedRow = m_selectedBar.x(); @@ -154,6 +150,11 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count) } } + if (series->isVisible()) { + adjustAxisRanges(); + m_isDataDirty = true; + } + emitNeedRender(); } @@ -162,11 +163,6 @@ void Bars3DController::handleRowsInserted(int startIndex, int count) Q_UNUSED(startIndex) Q_UNUSED(count) QBar3DSeries *series = static_cast<QBarDataProxy *>(sender())->series(); - if (series->isVisible()) { - adjustAxisRanges(); - m_isDataDirty = true; - } - if (series == m_selectedBarSeries) { // If rows inserted to selected series before the selection, adjust the selection int selectedRow = m_selectedBar.x(); @@ -176,6 +172,11 @@ void Bars3DController::handleRowsInserted(int startIndex, int count) } } + if (series->isVisible()) { + adjustAxisRanges(); + m_isDataDirty = true; + } + emitNeedRender(); } @@ -244,8 +245,6 @@ void Bars3DController::handlePendingClick() QPoint position = m_renderer->clickedPosition(); QBar3DSeries *series = static_cast<QBar3DSeries *>(m_renderer->clickedSeries()); - // TODO: Adjust position according to inserts/removes in the series - setSelectedBar(position, series); m_renderer->resetClickedStatus(); |