SkillExecutionTreeWidget.h
Go to the documentation of this file.
1 #ifndef SKILLEXECUTIONTREEWIDGET_H
2 #define SKILLEXECUTIONTREEWIDGET_H
3 
4 #include <QTreeWidget>
5 
6 #include <ArmarXCore/core/time.h>
7 
8 #include "../memory/MemoryCommunicatorBase.h"
9 
10 namespace armarx::skills::gui
11 {
12 
13  class SkillExecutionTreeWidget : public QTreeWidget, public MemoryCommunicatorBase
14  {
15  public:
16  SkillExecutionTreeWidget(std::shared_ptr<SkillManagerWrapper> _memory,
17  QWidget* parent = nullptr) :
18  QTreeWidget(parent), MemoryCommunicatorBase(_memory)
19  {
20  setupUi();
21  }
22 
24  {
26 
27  // make default constructable
30  .skillId = {.providerId = std::nullopt, .skillName = skills::SkillID::UNKNOWN},
31  .executorName = skills::SkillExecutionID::UNKNOWN,
32  .executionStartedTime = armarx::core::time::DateTime::Invalid()}
33  {
34  }
35  };
36 
37  SelectedExecution& getSelectedExecution();
38 
39  public slots:
40  void disconnectGui();
41  void updateExecutions();
42 
43  private slots:
44  void executionSelectionChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
45  void runContextMenu(const QPoint& pos);
46  void stopSelectedExecution();
47  void rerunSkillWithSimilarParams();
48 
49  private:
50  void setupUi();
51  void connectSignals();
52 
53  /**
54  * @brief Checks the validity of the selected item at run time.
55  * @return the validity.
56  */
57  bool selectionValid();
58  SelectedExecution selectedExecution;
59  };
60 } // namespace armarx::skills::gui
61 
62 #endif // SKILLEXECUTIONTREEWIDGET_H
armarx::skills::SkillExecutionID
Definition: SkillExecutionID.h:19
armarx::skills::gui::SkillExecutionTreeWidget::SelectedExecution::SelectedExecution
SelectedExecution()
Definition: SkillExecutionTreeWidget.h:28
armarx::skills::gui::SkillExecutionTreeWidget::SelectedExecution
Definition: SkillExecutionTreeWidget.h:23
armarx::skills::SkillID::providerId
std::optional< ProviderID > providerId
Definition: SkillID.h:59
armarx::skills::SkillID::UNKNOWN
static const constexpr char * UNKNOWN
Definition: SkillID.h:21
armarx::skills::SkillExecutionID::UNKNOWN
static const constexpr char * UNKNOWN
Definition: SkillExecutionID.h:25
armarx::skills::gui::SkillExecutionTreeWidget::disconnectGui
void disconnectGui()
Definition: SkillExecutionTreeWidget.cpp:84
armarx::skills::gui::SkillExecutionTreeWidget::getSelectedExecution
SelectedExecution & getSelectedExecution()
armarx::skills::gui::SkillExecutionTreeWidget::SelectedExecution::skillExecutionId
skills::SkillExecutionID skillExecutionId
Definition: SkillExecutionTreeWidget.h:25
armarx::skills::gui::SkillExecutionTreeWidget::updateExecutions
void updateExecutions()
Definition: SkillExecutionTreeWidget.cpp:143
armarx::skills::gui
Definition: PeriodicUpdateWidget.cpp:11
armarx::skills::SkillExecutionID::skillId
SkillID skillId
Definition: SkillExecutionID.h:21
time.h
armarx::skills::gui::SkillExecutionTreeWidget
Definition: SkillExecutionTreeWidget.h:13
armarx::skills::gui::SkillExecutionTreeWidget::SkillExecutionTreeWidget
SkillExecutionTreeWidget(std::shared_ptr< SkillManagerWrapper > _memory, QWidget *parent=nullptr)
Definition: SkillExecutionTreeWidget.h:16
armarx::core::time::DateTime::Invalid
static DateTime Invalid()
Definition: DateTime.cpp:60
armarx::skills::gui::MemoryCommunicatorBase
Definition: MemoryCommunicatorBase.h:14