From 77b0e391c46a0935260339cfd46f2381680864b9 2017-12-07 08:41:25 From: Thibaud Rabillard Date: 2017-12-07 08:41:25 Subject: [PATCH] Adds selection zone actions in the context menu --- diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index e74b417..96b96ba 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -10,6 +10,7 @@ #include "Visualization/VisualizationZoneWidget.h" #include "ui_VisualizationGraphWidget.h" +#include #include #include #include @@ -602,6 +603,22 @@ void VisualizationGraphWidget::onGraphMenuRequested(const QPoint &pos) noexcept graphMenu.addAction(tr("Undo Zoom"), [this]() { undoZoom(); }); } + auto selectionZoneItem = impl->selectionZoneAt(pos, plot()); + if (selectionZoneItem) { + auto selectedItems = parentVisualizationWidget()->selectionZoneManager().selectedItems(); + auto zoneActions = sqpApp->actionsGuiController().selectionZoneActions(); + if (!zoneActions.isEmpty() && !graphMenu.isEmpty()) { + graphMenu.addSeparator(); + } + + for (auto zoneAction : zoneActions) { + auto action = graphMenu.addAction(zoneAction->name()); + QObject::connect(action, &QAction::triggered, [zoneAction, &selectedItems]() { + zoneAction->execute(selectedItems); + }); + } + } + if (!graphMenu.isEmpty()) { graphMenu.exec(QCursor::pos()); }