SkillDetailsTreeWidget.h
Go to the documentation of this file.
1 #ifndef SKILLDETAILSTREEWIDGET_H
2 #define SKILLDETAILSTREEWIDGET_H
3 
4 #include <vector>
5 #include <QTreeWidget>
6 
10 
11 #include "../memory/MemoryCommunicatorBase.h"
12 
13 namespace armarx::skills::gui
14 {
15  class SkillDetailsTreeWidget : public QTreeWidget, public MemoryCommunicatorBase
16  {
17  Q_OBJECT
18  public:
19  SkillDetailsTreeWidget(std::shared_ptr<SkillManagerWrapper> _memory,
20  QWidget* parent = nullptr);
21 
22  std::optional<skills::SkillID> getShownId();
23  void updateContents(skills::SkillID const& skillId, skills::SkillDescription const& descr);
24 
26  void pasteCurrentConfig();
27  void resetWidget();
28 
29  signals:
30  void updated(const skills::SkillID shownSkill);
31 
32  public slots:
33  // this will reset the args to the profile defaults
34  void resetCurrentConfig();
35  void copyCurrentConfig();
36  void copyCurrentSkillID();
37  void disconnectGui();
39  void resizeContents();
40  void reloadLastParameters();
42 
43  private:
44  struct ShownSkill
45  {
46  skills::SkillID skillId;
48  armarx::aron::data::DictPtr originalParameters;
49  };
50 
51  std::optional<ShownSkill> shownSkill;
52 
53  // The size, which we assume the last column to be.
54  // If the last column has too little space, increase this value.
55  const int typeWidth = 200;
56 
57  AronTreeWidgetControllerPtr aronTreeWidgetController = nullptr;
58  void setupUi();
59  void checkIfShownSkillIsAvailable(SkillManagerWrapper::Snapshot& update);
60  bool askUserToConfirmWidgetReset();
61  bool checkIfParametersAreModified();
62 
63  bool showWidgetResetConfirmation_ = true;
64  };
65 } // namespace armarx::skills::gui
66 
67 #endif // SKILLDETAILSTREEWIDGET_H
armarx::skills::gui::SkillDetailsTreeWidget::resetCurrentConfig
void resetCurrentConfig()
Definition: SkillDetailsTreeWidget.cpp:338
SkillID.h
armarx::skills::gui::SkillDetailsTreeWidget::updateGui
void updateGui(SkillManagerWrapper::Snapshot update)
Definition: SkillDetailsTreeWidget.cpp:97
armarx::skills::gui::SkillDetailsTreeWidget::reloadLastParameters
void reloadLastParameters()
Definition: SkillDetailsTreeWidget.cpp:223
armarx::skills::SkillDescription
Definition: SkillDescription.h:17
armarx::skills::gui::SkillDetailsTreeWidget::SkillDetailsTreeWidget
SkillDetailsTreeWidget(std::shared_ptr< SkillManagerWrapper > _memory, QWidget *parent=nullptr)
Definition: SkillDetailsTreeWidget.cpp:25
armarx::skills::gui::SkillDetailsTreeWidget::resizeContents
void resizeContents()
Problem: columns 0 and 1 have arbitrary size; so we want to limit their size, to make sure everything...
Definition: SkillDetailsTreeWidget.cpp:208
Dict.h
armarx::skills::gui::SkillDetailsTreeWidget::updateContents
void updateContents(skills::SkillID const &skillId, skills::SkillDescription const &descr)
Definition: SkillDetailsTreeWidget.cpp:46
armarx::skills::gui::AronTreeWidgetControllerPtr
std::shared_ptr< AronTreeWidgetController > AronTreeWidgetControllerPtr
Definition: AronTreeWidgetController.h:51
armarx::skills::gui::SkillDetailsTreeWidget::reloadLastExecutionParameters
void reloadLastExecutionParameters()
Definition: SkillDetailsTreeWidget.cpp:241
armarx::skills::gui::SkillManagerWrapper::Snapshot
Definition: SkillManagerWrapper.h:82
armarx::skills::gui::SkillDetailsTreeWidget::getShownId
std::optional< skills::SkillID > getShownId()
Definition: SkillDetailsTreeWidget.cpp:33
armarx::skills::gui::SkillDetailsTreeWidget::copyCurrentSkillID
void copyCurrentSkillID()
Definition: SkillDetailsTreeWidget.cpp:309
AronTreeWidgetController.h
armarx::skills::gui::SkillDetailsTreeWidget::copyCurrentConfig
void copyCurrentConfig()
Definition: SkillDetailsTreeWidget.cpp:296
armarx::skills::gui
Definition: PeriodicUpdateWidget.cpp:11
armarx::skills::gui::SkillDetailsTreeWidget::getConfigAsAron
aron::data::DictPtr getConfigAsAron()
Definition: SkillDetailsTreeWidget.cpp:285
armarx::armem::server::ltm::util::mongodb::detail::update
bool update(mongocxx::collection &coll, const nlohmann::json &query, const nlohmann::json &update)
Definition: mongodb.cpp:68
armarx::skills::gui::SkillDetailsTreeWidget
Definition: SkillDetailsTreeWidget.h:15
armarx::skills::gui::SkillDetailsTreeWidget::disconnectGui
void disconnectGui()
Definition: SkillDetailsTreeWidget.cpp:91
armarx::skills::gui::SkillDetailsTreeWidget::updated
void updated(const skills::SkillID shownSkill)
armarx::skills::gui::SkillDetailsTreeWidget::resetWidget
void resetWidget()
Definition: SkillDetailsTreeWidget.cpp:362
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::skills::SkillID
Definition: SkillID.h:14
armarx::skills::gui::SkillDetailsTreeWidget::pasteCurrentConfig
void pasteCurrentConfig()
Definition: SkillDetailsTreeWidget.cpp:321
armarx::skills::gui::MemoryCommunicatorBase
Definition: MemoryCommunicatorBase.h:14