From dc181b390a608320d9eefe649834f1ca0bdd8b68 Mon Sep 17 00:00:00 2001 From: Peter Albrecht <albrecpe@gmail.com> Date: Mon, 18 Dec 2023 15:47:46 +0100 Subject: [PATCH] Fully implemented ProfileMenuWidget --- .../SkillManagerMonitorWidgetController.cpp | 1 - .../libraries/skills_gui/SkillMemoryGui.cpp | 4 --- .../skill_details/ProfileMenuWidget.cpp | 30 +++++++++++++++---- .../skill_details/ProfileMenuWidget.h | 7 ++++- .../skill_details/SkillDetailsGroupBox.cpp | 10 +++---- .../skill_details/SkillDetailsGroupBox.h | 6 ++-- 6 files changed, 37 insertions(+), 21 deletions(-) diff --git a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp index f32e98a2d..aaee78b02 100644 --- a/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/SkillManagerPlugin/SkillManagerMonitorWidgetController.cpp @@ -51,7 +51,6 @@ #include "aronTreeWidget/Data.h" #include "aronTreeWidget/modal/text/AronTreeWidgetTextInputModalController.h" -#include "aronTreeWidget/visitors/AronTreeWidgetConverter.h" #include "aronTreeWidget/visitors/AronTreeWidgetCreator.h" #include "aronTreeWidget/visitors/AronTreeWidgetModalCreator.h" #include "aronTreeWidget/widgets/SkillDescriptionWidget.h" diff --git a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp index b9f841f70..878b44b6d 100644 --- a/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp +++ b/source/RobotAPI/libraries/skills_gui/SkillMemoryGui.cpp @@ -58,10 +58,6 @@ namespace armarx::skills::gui _skillGroupBoxParentLayout->insertWidget(0, this->skillDetailGroupBox); _skillGroupBoxParentLayout->insertWidget(0, this->skillGroupBox); - // aron - skillDescriptionWidget = new SkillDescriptionWidget(); - this->skillDetailGroupBox->addDescriptionWidget(skillDescriptionWidget); - setupUi(); } diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.cpp index a440ef341..5943a85ac 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.cpp @@ -1,5 +1,9 @@ #include "ProfileMenuWidget.h" +#include <QHBoxLayout> +#include <QLabel> +#include <QVBoxLayout> + namespace armarx::skills::gui { @@ -7,16 +11,30 @@ namespace armarx::skills::gui ProfileMenuWidget::setupUi() { setArgsFromClipboard = new QPushButton(); - copyArgsToClioboard = new QPushButton(); + copyArgsToClipboard = new QPushButton(); resetArgsToProfile = new QPushButton(); profileSelector = new QComboBox(); + // layouting + QVBoxLayout* mainLayout = new QVBoxLayout(); + QHBoxLayout* topLayout = new QHBoxLayout(); + + mainLayout->addLayout(topLayout); + mainLayout->addWidget(profileSelector); + + topLayout->addWidget(setArgsFromClipboard); + topLayout->addWidget(copyArgsToClipboard); + // this is not good. We should probably use a QSpacerItem here... + topLayout->addWidget(new QLabel()); + topLayout->addWidget(resetArgsToProfile); + + this->setLayout(mainLayout); + // Text - setArgsFromClipboard->setText(QString::fromStdString("Set args from clipboard")); - copyArgsToClioboard->setText(QString::fromStdString("Copy args to clipboard")); - resetArgsToProfile->setText(QString::fromStdString("Reset args to profile")); - profileSelector->setCurrentText( - QString::fromStdString("<No Profile selected. Using root>")); + setArgsFromClipboard->setText(QString::fromStdString(SET_ARGS_BUTTON_TEXT)); + copyArgsToClipboard->setText(QString::fromStdString(COPY_ARGS_BUTTON_TEXT)); + resetArgsToProfile->setText(QString::fromStdString(RESET_ARGS_BUTTON_TEXT)); + profileSelector->setCurrentText(QString::fromStdString(DEFAULT_PROFILE_TEXT)); } diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.h b/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.h index bfd5ecc17..26f6a490a 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.h +++ b/source/RobotAPI/libraries/skills_gui/skill_details/ProfileMenuWidget.h @@ -13,6 +13,11 @@ namespace armarx::skills::gui { Q_OBJECT public: + static const constexpr char* SET_ARGS_BUTTON_TEXT = "Set Args from Clipboard"; + static const constexpr char* COPY_ARGS_BUTTON_TEXT = "Copy Args to Clipboard"; + static const constexpr char* RESET_ARGS_BUTTON_TEXT = "Reset Args to Profile"; + static const constexpr char* DEFAULT_PROFILE_TEXT = "<No Profile selected. Using root>"; + ProfileMenuWidget(std::shared_ptr<SkillManagerWrapper> _memory, QWidget* parent = nullptr) : QWidget(parent), MemoryCommunicatorBase(_memory) { @@ -23,7 +28,7 @@ namespace armarx::skills::gui void setupUi(); QPushButton* setArgsFromClipboard = nullptr; - QPushButton* copyArgsToClioboard = nullptr; + QPushButton* copyArgsToClipboard = nullptr; QPushButton* resetArgsToProfile = nullptr; QComboBox* profileSelector = nullptr; }; diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp index 9ab21f2f8..733be8714 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp @@ -4,25 +4,23 @@ namespace armarx::skills::gui { - void - SkillDetailGroupBox::addDescriptionWidget(SkillDescriptionWidget* widget) - { - this->layout->insertWidget(1, widget); - } - void SkillDetailGroupBox::setupUi() { + this->setTitle(QString::fromStdString(GROUP_BOX_TITLE)); + // construct all sub widgets this->executeSkillButton = new QPushButton(); this->profileMenuWidget = new ProfileMenuWidget(this->memory, this); this->skillDetailsTreeWidget = new SkillDetailsTreeWidget(this->memory, this); + this->descriptionWidget = new SkillDescriptionWidget(); layout = new QVBoxLayout(); // Layouting this->setLayout(layout); layout->addWidget(this->profileMenuWidget); + layout->addWidget(this->descriptionWidget); layout->addWidget(this->skillDetailsTreeWidget); layout->addWidget(this->executeSkillButton); diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.h b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.h index 6dc1767bf..ef258f32b 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.h +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.h @@ -16,7 +16,8 @@ namespace armarx::skills::gui class SkillDetailGroupBox : public QGroupBox, public MemoryCommunicatorBase { public: - static const constexpr char* EXECUTE_SKILL_BUTTON_TEXT = "Execute skill"; + static const constexpr char* EXECUTE_SKILL_BUTTON_TEXT = "Request Execution"; + static const constexpr char* GROUP_BOX_TITLE = "Skill Description"; SkillDetailGroupBox(std::shared_ptr<SkillManagerWrapper> _memory, QWidget* parent = nullptr) : @@ -25,13 +26,12 @@ namespace armarx::skills::gui setupUi(); } - void addDescriptionWidget(SkillDescriptionWidget* widget); - private: void setupUi(); QVBoxLayout* layout = nullptr; QPushButton* executeSkillButton = nullptr; SkillDetailsTreeWidget* skillDetailsTreeWidget = nullptr; + SkillDescriptionWidget* descriptionWidget = nullptr; ProfileMenuWidget* profileMenuWidget = nullptr; }; } // namespace armarx::skills::gui -- GitLab