From be0266745c147872b2532cf9030178bbe713a389 Mon Sep 17 00:00:00 2001
From: Peter Albrecht <albrecpe@gmail.com>
Date: Thu, 21 Dec 2023 14:38:15 +0100
Subject: [PATCH] fix: execution selection not updated

---
 .../executions/SkillExecutionTreeWidget.cpp      | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
index 8c89fe3ab..1a2da63dc 100644
--- a/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
+++ b/source/RobotAPI/libraries/skills_gui/executions/SkillExecutionTreeWidget.cpp
@@ -13,10 +13,16 @@ namespace armarx::skills::gui
     void
     SkillExecutionTreeWidget::runContextMenu(const QPoint& pos)
     {
+        // sanity check
+        ARMARX_CHECK(selectionValid());
+
         QMenu* menu = new QMenu();
 
         // Stop skill
         QAction* stopSkillAction = new QAction("Stop execution", this);
+        const auto& executions = memory->fetchExecutions();
+        if (!executions.contains(selectedExecution.skillExecutionId))
+            return;
         skills::SkillStatus currentStatus =
             memory->fetchExecutions().at(selectedExecution.skillExecutionId).status;
         stopSkillAction->setDisabled(currentStatus == skills::SkillStatus::Aborted ||
@@ -93,11 +99,21 @@ namespace armarx::skills::gui
         ___qtreewidgetitem->setText(2, "SkillID");
         ___qtreewidgetitem->setText(1, "Executor");
         ___qtreewidgetitem->setText(0, "Timestamp");
+
+        connectSignals();
     }
 
     void
     SkillExecutionTreeWidget::connectSignals()
     {
+        connect(this,
+                &QTreeWidget::customContextMenuRequested,
+                this,
+                &SkillExecutionTreeWidget::runContextMenu);
+        connect(this,
+                &QTreeWidget::currentItemChanged,
+                this,
+                &SkillExecutionTreeWidget::executionSelectionChanged);
     }
 
     inline bool
-- 
GitLab