From 181c3aa0caeeb63377e806051427072f76107370 Mon Sep 17 00:00:00 2001
From: Peter Albrecht <albrecpe@gmail.com>
Date: Sat, 21 Oct 2023 15:20:14 +0200
Subject: [PATCH] Connected stop action to stopSkill

---
 .../SkillManagerMonitorWidgetController.cpp         | 13 ++++++++++++-
 .../SkillManagerMonitorWidgetController.h           |  2 +-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
index a46babdda..49e3a18bf 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
@@ -35,8 +35,10 @@
 #include "aronTreeWidget/modal/text/AronTreeWidgetTextInputModalController.h"
 
 // debug
+#include <QAction>
 #include <QClipboard>
 #include <QDoubleSpinBox>
+#include <QMenu>
 
 #include <RobotAPI/libraries/aron/converter/json/NLohmannJSONConverter.h>
 #include <RobotAPI/libraries/skills/core/SkillExecutionRequest.h>
@@ -83,7 +85,15 @@ namespace armarx
     void
     SkillManagerMonitorWidgetController::prepareMenu(const QPoint& pos)
     {
-        ARMARX_IMPORTANT << "Function not implemented!";
+        QMenu* menu = new QMenu();
+        // TODO: gray out option if skill has finished
+        QAction* stopSkillAction = new QAction("Stop Skill", this);
+        menu->addAction(stopSkillAction);
+        connect(stopSkillAction,
+                &QAction::triggered,
+                this,
+                &SkillManagerMonitorWidgetController::stopSkill);
+        menu->popup(widget.treeWidgetSkillExecutions->viewport()->mapToGlobal(pos));
     }
 
     SkillExecutionInfoTreeWidgetItem*
@@ -477,6 +487,7 @@ namespace armarx
     void
     SkillManagerMonitorWidgetController::stopSkill()
     {
+        ARMARX_IMPORTANT << "Stop skill triggered";
         //        std::scoped_lock l(updateMutex);
         //        if (selectedSkill.skillId.fullySpecified())
         //        {
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
index ec56794be..c894f30c2 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.h
@@ -129,7 +129,7 @@ namespace armarx
         void pasteCurrentConfig();
         void resetCurrentConfig();
 
-        void prepareMenu();
+        void prepareMenu(const QPoint& pos);
 
 
     private:
-- 
GitLab