diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp index a46babdda00eaa6fd1ca72ba181f910fe69f402a..49e3a18bfd97551baddd860f9cc3ffea0774ef3c 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 ec56794be9092542a5ea031994f4c24009120626..c894f30c2807dd4482d29197cb3e38618e5f7d4e 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: