From 74eeb2249711ad5e89a6a2d7614c3577c9906f48 Mon Sep 17 00:00:00 2001 From: Peter Albrecht <albrecpe@gmail.com> Date: Thu, 14 Dec 2023 16:05:32 +0100 Subject: [PATCH] Implemented stopAllExecutions --- .../SkillManagerMonitorWidgetController.cpp | 1 - .../executions/SkillExecutionTreeWidget.cpp | 16 ++++++++++++++++ .../executions/SkillExecutionTreeWidgetItem.cpp | 6 ++++++ .../executions/SkillExecutionTreeWidgetItem.h | 2 ++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp index 8e8e8e655..47234be7d 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp @@ -32,7 +32,6 @@ #include <RobotAPI/libraries/skills/core/Skill.h> #include "aronTreeWidget/visitors/AronTreeWidgetConverter.h" -#include "aronTreeWidget/visitors/AronTreeWidgetCreator.h" #include "aronTreeWidget/visitors/AronTreeWidgetModalCreator.h" // modals diff --git a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp index dd1f601f1..9ca3e71ab 100644 --- a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp @@ -67,6 +67,22 @@ namespace armarx::skills::gui this->memory->startExecutionWithParams(currentExecutionId.skillId, params); } + void + SkillExecutionTreeWidget::stopAllExecutions() + { + for (ssize_t i = 0; i < this->topLevelItemCount(); ++i) + { + auto item = dynamic_cast<SkillExecutionTreeWidgetItem*>(this->topLevelItem(i)); + + if (!item) + { + continue; + } + + memory->stopExecution(item->getExecutionId()); + } + } + void SkillExecutionTreeWidget::refresh() { diff --git a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.cpp b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.cpp index 735042b14..924aea9b5 100644 --- a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.cpp +++ b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.cpp @@ -28,4 +28,10 @@ namespace armarx::skills::gui } return nullptr; } + + SkillExecutionID + SkillExecutionTreeWidgetItem::getExecutionId() + { + return this->executionId; + } } // namespace armarx::skills::gui diff --git a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.h b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.h index 270ef0321..e46b2eb72 100644 --- a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.h +++ b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidgetItem.h @@ -27,6 +27,8 @@ namespace armarx::skills::gui SearchRecursiveForMatch(SkillExecutionTreeWidgetItem* haystack, const skills::SkillExecutionID& needle); + skills::SkillExecutionID getExecutionId(); + protected: skills::SkillExecutionID executionId; -- GitLab