From 41837245eb276f1064be85960c68cf8155c31715 Mon Sep 17 00:00:00 2001
From: Peter Albrecht <albrecpe@gmail.com>
Date: Sat, 21 Oct 2023 18:38:39 +0200
Subject: [PATCH] Changed skill execution status indicator in gui: state is now
 represented by only one column

---
 .../SkillManagerMonitorWidget.ui              | 25 ---------
 .../SkillManagerMonitorWidgetController.cpp   | 51 ++++++++++---------
 2 files changed, 27 insertions(+), 49 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
index 536bf804f..88c594cea 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidget.ui
@@ -95,31 +95,6 @@
            <string>SkillID</string>
           </property>
          </column>
-         <column>
-          <property name="text">
-           <string>Constructing</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Initializing</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Preparing</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Running</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Finished</string>
-          </property>
-         </column>
          <column>
           <property name="text">
            <string>Status</string>
diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
index db2a98e79..a518220d4 100644
--- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp
@@ -358,16 +358,16 @@ namespace armarx
     SkillManagerMonitorWidgetController::refreshExecutions()
     {
         static std::map<skills::SkillStatus, std::string> ExecutionStatus2String = {
+            // Main states
+            {skills::SkillStatus::Constructing, "Constructing"},
+            {skills::SkillStatus::Initializing, "Initializing"},
+            {skills::SkillStatus::Preparing, "Preparing"},
+            {skills::SkillStatus::Running, "Running"},
+
             // Terminating
             {skills::SkillStatus::Aborted, "Aborted"},
             {skills::SkillStatus::Failed, "Failed"},
-            {skills::SkillStatus::Succeeded, "Succeeded"},
-
-            // Others
-            {skills::SkillStatus::Constructing, "Under construction"},
-            {skills::SkillStatus::Running, "Running"},
-            {skills::SkillStatus::Initializing, "Initializing"},
-            {skills::SkillStatus::Preparing, "Preparing"}};
+            {skills::SkillStatus::Succeeded, "Succeeded"}};
 
         if (!memory)
         {
@@ -398,10 +398,19 @@ namespace armarx
 
                     if (found)
                     {
+                        for (std::pair<skills::SkillStatus, std::string> i : ExecutionStatus2String)
+                        {
+                            if (i.first == statusUpdate.status)
+                            {
+                                found->setText(3, QString::fromStdString(i.second));
+                            }
+                        }
+
+                        /*
                         // update values
-                        found->setText(3,
-                                       QString::fromStdString(
-                                           statusUpdate.hasBeenConstructed() ? " (\xfb) " : ""));
+                        //found->setText(3,
+                        //               QString::fromStdString(
+                        //                   statusUpdate.hasBeenConstructed() ? " (\xfb) " : ""));
                         found->setText(4,
                                        QString::fromStdString(
                                            statusUpdate.hasBeenInitialized() ? " (\xfb) " : ""));
@@ -414,6 +423,7 @@ namespace armarx
                         found->setText(7,
                                        QString::fromStdString(
                                            statusUpdate.hasBeenTerminated() ? " (\xfb) " : ""));
+                        */
                         break;
                     }
                 }
@@ -429,20 +439,13 @@ namespace armarx
                                       executionId.executionStartedTime.toDateTimeString()));
                     item->setText(1, QString::fromStdString(executionId.executorName));
                     item->setText(2, QString::fromStdString(executionId.skillId.toString()));
-                    item->setText(3,
-                                  QString::fromStdString(
-                                      statusUpdate.hasBeenConstructed() ? " (\xfb) " : ""));
-                    item->setText(4,
-                                  QString::fromStdString(
-                                      statusUpdate.hasBeenInitialized() ? " (\xfb) " : ""));
-                    item->setText(
-                        5,
-                        QString::fromStdString(statusUpdate.hasBeenPrepared() ? " (\xfb) " : ""));
-                    item->setText(
-                        6, QString::fromStdString(statusUpdate.hasBeenRunning() ? " (\xfb) " : ""));
-                    item->setText(
-                        7,
-                        QString::fromStdString(statusUpdate.hasBeenTerminated() ? " (\xfb) " : ""));
+                    for (std::pair<skills::SkillStatus, std::string> i : ExecutionStatus2String)
+                    {
+                        if (i.first == statusUpdate.status)
+                        {
+                            item->setText(3, QString::fromStdString(i.second));
+                        }
+                    }
                 }
             }
         }
-- 
GitLab