diff --git a/gui/include/Visualization/VisualizationGraphWidget.h b/gui/include/Visualization/VisualizationGraphWidget.h index 367d198..5ed6ce5 100644 --- a/gui/include/Visualization/VisualizationGraphWidget.h +++ b/gui/include/Visualization/VisualizationGraphWidget.h @@ -43,6 +43,8 @@ private: spimpl::unique_impl_ptr impl; private slots: + /// Slot called when right clicking on the graph (displays a menu) + void onGraphMenuRequested(const QPoint &pos) noexcept; void onRangeChanged(const QCPRange &t1, const QCPRange &t2); diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index 3279f8b..efc1250 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -53,6 +53,11 @@ VisualizationGraphWidget::VisualizationGraphWidget(const QString &name, QWidget connect(ui->widget->xAxis, static_cast( &QCPAxis::rangeChanged), this, &VisualizationGraphWidget::onRangeChanged); + + // Activates menu when right clicking on the graph + ui->widget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->widget, &QCustomPlot::customContextMenuRequested, this, + &VisualizationGraphWidget::onGraphMenuRequested); } @@ -96,6 +101,16 @@ QString VisualizationGraphWidget::name() const return ui->graphNameLabel->text(); } +void VisualizationGraphWidget::onGraphMenuRequested(const QPoint &pos) noexcept +{ + QMenu graphMenu{}; + + + if (!graphMenu.isEmpty()) { + graphMenu.exec(mapToGlobal(pos)); + } +} + void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1, const QCPRange &t2) {