diff options
Diffstat (limited to 'src/datavisualization/engine/bars3dcontroller.cpp')
-rw-r--r-- | src/datavisualization/engine/bars3dcontroller.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp index a67f1adb..ae6a1c48 100644 --- a/src/datavisualization/engine/bars3dcontroller.cpp +++ b/src/datavisualization/engine/bars3dcontroller.cpp @@ -75,8 +75,6 @@ void Bars3DController::initializeOpenGL() setRenderer(m_renderer); synchDataToRenderer(); - QObject::connect(m_renderer, &Bars3DRenderer::barClicked, this, - &Bars3DController::handleBarClicked, Qt::QueuedConnection); emitNeedRender(); } @@ -211,14 +209,6 @@ void Bars3DController::handleDataColumnLabelsChanged() } } -void Bars3DController::handleBarClicked(const QPoint &position, QBar3DSeries *series) -{ - setSelectedBar(position, series); - - // TODO: pass clicked to parent. (QTRD-2517) - // TODO: Also hover needed? (QTRD-2131) -} - void Bars3DController::handleAxisAutoAdjustRangeChangedInOrientation( QAbstract3DAxis::AxisOrientation orientation, bool autoAdjust) { @@ -238,6 +228,19 @@ void Bars3DController::handleSeriesVisibilityChangedBySender(QObject *sender) setSelectedBar(m_selectedBar, m_selectedBarSeries); } +void Bars3DController::handlePendingClick() +{ + // This function is called while doing the sync, so it is okay to query from renderer + 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(); +} + QPoint Bars3DController::invalidSelectionPosition() { static QPoint invalidSelectionPos(-1, -1); |