diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp index bae1d2799cd774e3426a8951b1aeeb7fd6def329..bd9838975d655b40e7d7afd8e1139874b9b2b6a0 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp @@ -109,7 +109,9 @@ namespace armarx::skills::gui // Text this->executeSkillButton->setText( QString::fromStdString(SkillDetailGroupBox::EXECUTE_SKILL_BUTTON_TEXT)); - this->show(); + + // not implemented -> disable + profileMenuWidget->resetArgsToProfile->setDisabled(true); connectSignals(); } @@ -131,6 +133,16 @@ namespace armarx::skills::gui &SkillDetailGroupBox::updateGui, skillDetailsTreeWidget, &SkillDetailsTreeWidget::updateGui); + + // profile buttons + connect(profileMenuWidget->copyArgsToClipboard, + &QPushButton::clicked, + skillDetailsTreeWidget, + &SkillDetailsTreeWidget::copyCurrentConfig); + connect(profileMenuWidget->setArgsFromClipboard, + &QPushButton::clicked, + skillDetailsTreeWidget, + &SkillDetailsTreeWidget::pasteCurrentConfig); } diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp index c3ead07a4d496ac4edcdcbd4d464717fad9bb97b..a38eeb9790b820fc5a3ea6148a4cf52b71784252 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp @@ -88,6 +88,17 @@ namespace armarx::skills::gui skills::SkillID sid = shownSkill.value().skillId; // we assume the id to be fully specified, as it is checked while constructing + // sanity check + ARMARX_CHECK(sid.isFullySpecified()); + + // maybe the search is empty? + auto skillsMap = memory->fetchSkills(); + if (!skillsMap.contains(sid.providerId.value()) || + !skillsMap.at(sid.providerId.value()).contains(sid)) + { + this->resetWidget(); + return; + } auto descr = memory->fetchSkills().at(sid.providerId.value()).at(sid); diff --git a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp index f20960ce87c074788ae9c2a6f82780944591499c..29b9fb1800b4c4991198bff61a492b6fd0f436b0 100644 --- a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp @@ -52,6 +52,9 @@ namespace armarx::skills::gui } ++i; + + // sanity check + ARMARX_CHECK(skills.contains(providerId)); auto& providedSkills = skills.at(providerId); int j = 0;