diff --git a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h index 6e34ac3..7bdd366 100644 --- a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h +++ b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h @@ -10,6 +10,8 @@ class VisualizationGraphRenderingDelegate { public: explicit VisualizationGraphRenderingDelegate(QCustomPlot &plot); + void onMouseMove(QMouseEvent *event) noexcept; + private: class VisualizationGraphRenderingDelegatePrivate; spimpl::unique_impl_ptr impl; diff --git a/gui/include/Visualization/VisualizationGraphWidget.h b/gui/include/Visualization/VisualizationGraphWidget.h index 1f31ed2..a015f24 100644 --- a/gui/include/Visualization/VisualizationGraphWidget.h +++ b/gui/include/Visualization/VisualizationGraphWidget.h @@ -69,6 +69,8 @@ private slots: /// Rescale the X axe to range parameter void onRangeChanged(const QCPRange &t1, const QCPRange &t2); + /// Slot called when a mouse move was made + void onMouseMove(QMouseEvent *event) noexcept; /// Slot called when a mouse wheel was made, to perform some processing before the zoom is done void onMouseWheel(QWheelEvent *event) noexcept; /// Slot called when a mouse press was made, to activate the calibration of a graph diff --git a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp index 56fc4bf..7abc709 100644 --- a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp +++ b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp @@ -11,3 +11,7 @@ VisualizationGraphRenderingDelegate::VisualizationGraphRenderingDelegate(QCustom : impl{spimpl::make_unique_impl(plot)} { } + +void VisualizationGraphRenderingDelegate::onMouseMove(QMouseEvent *event) noexcept +{ +} diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index c2cb2f5..eb70fb8 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -73,9 +73,11 @@ VisualizationGraphWidget::VisualizationGraphWidget(const QString &name, QWidget // - Mouse wheel on qcpplot is intercepted to determine the zoom orientation ui->widget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); ui->widget->axisRect()->setRangeDrag(Qt::Horizontal); + connect(ui->widget, &QCustomPlot::mousePress, this, &VisualizationGraphWidget::onMousePress); connect(ui->widget, &QCustomPlot::mouseRelease, this, &VisualizationGraphWidget::onMouseRelease); + connect(ui->widget, &QCustomPlot::mouseMove, this, &VisualizationGraphWidget::onMouseMove); connect(ui->widget, &QCustomPlot::mouseWheel, this, &VisualizationGraphWidget::onMouseWheel); connect(ui->widget->xAxis, static_cast( &QCPAxis::rangeChanged), @@ -337,6 +339,12 @@ void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1, const QCPRange } } +void VisualizationGraphWidget::onMouseMove(QMouseEvent *event) noexcept +{ + // Handles plot rendering when mouse is moving + impl->m_RenderingDelegate->onMouseMove(event); +} + void VisualizationGraphWidget::onMouseWheel(QWheelEvent *event) noexcept { auto zoomOrientations = QFlags{};