summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/bars3dcontroller.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-05 11:16:45 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-05 11:21:48 +0200
commit83611a966a77e5962adfcebe75f5aca49fc5971e (patch)
treee4e19ad728bb1f853ba08a9723d9c780e4b74a6c /src/datavisualization/engine/bars3dcontroller.cpp
parent79f3a4d7aa2fcbdc5df133ede88a367aa5870bd3 (diff)
Fix slice update for bars, too.
Also revert the incorrect change to surface slice update. Change-Id: If08d5848e5b216f4f6b82e39727eeb7facd463ca Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/bars3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp
index 5bd37ccf..c49a6bb0 100644
--- a/src/datavisualization/engine/bars3dcontroller.cpp
+++ b/src/datavisualization/engine/bars3dcontroller.cpp
@@ -109,7 +109,7 @@ void Bars3DController::handleArrayReset()
m_isDataDirty = true;
}
// Clear selection unless still valid
- setSelectedBar(m_selectedBar, m_selectedBarSeries);
+ setSelectedBar(m_selectedBar, m_selectedBarSeries, false);
emitNeedRender();
}
@@ -152,7 +152,7 @@ void Bars3DController::handleRowsRemoved(int startIndex, int count)
else
selectedRow -= count; // Move selected row down by amount of rows removed
- setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries);
+ setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries, false);
}
}
@@ -174,7 +174,7 @@ void Bars3DController::handleRowsInserted(int startIndex, int count)
int selectedRow = m_selectedBar.x();
if (startIndex <= selectedRow) {
selectedRow += count;
- setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries);
+ setSelectedBar(QPoint(selectedRow, m_selectedBar.y()), m_selectedBarSeries, false);
}
}
@@ -240,9 +240,9 @@ void Bars3DController::handleSeriesVisibilityChangedBySender(QObject *sender)
adjustAxisRanges();
- // Visibility changes may require disabling/enabling slicing,
+ // Visibility changes may require disabling slicing,
// so just reset selection to ensure everything is still valid.
- setSelectedBar(m_selectedBar, m_selectedBarSeries);
+ setSelectedBar(m_selectedBar, m_selectedBarSeries, false);
}
void Bars3DController::handlePendingClick()
@@ -251,7 +251,7 @@ void Bars3DController::handlePendingClick()
QPoint position = m_renderer->clickedPosition();
QBar3DSeries *series = static_cast<QBar3DSeries *>(m_renderer->clickedSeries());
- setSelectedBar(position, series);
+ setSelectedBar(position, series, true);
m_renderer->resetClickedStatus();
}
@@ -309,7 +309,7 @@ void Bars3DController::removeSeries(QAbstract3DSeries *series)
Abstract3DController::removeSeries(series);
if (m_selectedBarSeries == series)
- setSelectedBar(invalidSelectionPosition(), 0);
+ setSelectedBar(invalidSelectionPosition(), 0, false);
if (wasVisible)
adjustAxisRanges();
@@ -348,7 +348,7 @@ void Bars3DController::insertSeries(int index, QAbstract3DSeries *series)
}
if (barSeries->selectedBar() != invalidSelectionPosition())
- setSelectedBar(barSeries->selectedBar(), barSeries);
+ setSelectedBar(barSeries->selectedBar(), barSeries, false);
if (!oldSize)
emit primarySeriesChanged(m_primarySeries);
@@ -381,7 +381,7 @@ void Bars3DController::handleAxisRangeChangedBySender(QObject *sender)
Abstract3DController::handleAxisRangeChangedBySender(sender);
// Update selected bar - may be moved offscreen
- setSelectedBar(m_selectedBar, m_selectedBarSeries);
+ setSelectedBar(m_selectedBar, m_selectedBarSeries, false);
}
void Bars3DController::setMultiSeriesScaling(bool uniform)
@@ -436,7 +436,7 @@ void Bars3DController::setSelectionMode(QAbstract3DGraph::SelectionFlags mode)
if (mode != oldMode) {
// Refresh selection upon mode change to ensure slicing is correctly updated
// according to series the visibility.
- setSelectedBar(m_selectedBar, m_selectedBarSeries);
+ setSelectedBar(m_selectedBar, m_selectedBarSeries, true);
// Special case: Always deactivate slicing when changing away from slice
// automanagement, as this can't be handled in setSelectedBar.
@@ -448,7 +448,7 @@ void Bars3DController::setSelectionMode(QAbstract3DGraph::SelectionFlags mode)
}
}
-void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *series)
+void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *series, bool enterSlice)
{
// If the selection targets non-existent bar, clear selection instead.
QPoint pos = position;
@@ -465,7 +465,7 @@ void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *seri
|| pos.y() < m_axisX->min() || pos.y() > m_axisX->max()
|| !series->isVisible()) {
scene()->setSlicingActive(false);
- } else {
+ } else if (enterSlice) {
scene()->setSlicingActive(true);
}
emitNeedRender();
@@ -491,7 +491,7 @@ void Bars3DController::setSelectedBar(const QPoint &position, QBar3DSeries *seri
void Bars3DController::clearSelection()
{
- setSelectedBar(invalidSelectionPosition(), 0);
+ setSelectedBar(invalidSelectionPosition(), 0, false);
}
void Bars3DController::adjustAxisRanges()