diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index b51a579..53d0a6f 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -892,6 +892,15 @@ void VisualizationGraphWidget::mouseMoveEvent(QMouseEvent *event) } else if(sqpApp->plotsInteractionMode() == SqpApplication::PlotsInteractionMode::SelectionZones) { + if(auto item = impl->m_plot->itemAt(event->pos())) + { + if(qobject_cast(item)) + { + QMouseEvent e{QEvent::MouseMove,this->impl->m_plot->mapFromParent(event->pos()),event->button(),event->buttons(),event->modifiers()}; + sqpApp->sendEvent(this->impl->m_plot, &e); + this->impl->m_plot->replot(QCustomPlot::rpQueuedReplot); + } + } } } @@ -921,6 +930,15 @@ void VisualizationGraphWidget::mouseReleaseEvent(QMouseEvent *event) { setCursor(Qt::ArrowCursor); } + auto posInPlot = this->impl->m_plot->mapFromParent(event->pos()); + if(auto item = impl->m_plot->itemAt(posInPlot)) + { + if(qobject_cast(item)) + { + QMouseEvent e{QEvent::MouseButtonRelease, posInPlot, event->button(), event->buttons(), event->modifiers()}; + sqpApp->sendEvent(this->impl->m_plot, &e); + } + } event->accept(); } @@ -965,6 +983,17 @@ void VisualizationGraphWidget::mousePressEvent(QMouseEvent *event) parentVisualizationWidget()->selectionZoneManager().select({ selectedZone }); } } + { + auto posInPlot = this->impl->m_plot->mapFromParent(event->pos()); + if(auto item = impl->m_plot->itemAt(posInPlot)) + { + if(qobject_cast(item)) + { + QMouseEvent e{QEvent::MouseButtonPress, posInPlot, event->button(), event->buttons(), event->modifiers()}; + sqpApp->sendEvent(this->impl->m_plot, &e); + } + } + } break; case SqpApplication::PlotsInteractionMode::ZoomBox : impl->startDrawingRect(event->pos());