summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/bars3dcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/bars3dcontroller.cpp')
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp23
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);