From d2cc62955c3184ba3c8e1226ecf17d4faf0c7c2d Mon Sep 17 00:00:00 2001 From: Peter Albrecht <albrecpe@gmail.com> Date: Thu, 21 Dec 2023 20:06:05 +0100 Subject: [PATCH] fix: error on empty search result --- .../skill_details/SkillDetailsGroupBox.cpp | 14 +++++++++++++- .../skill_details/SkillDetailsTreeWidget.cpp | 11 +++++++++++ .../skills_gui/skills/SkillTreeWidget.cpp | 3 +++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp index bae1d2799..bd9838975 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 c3ead07a4..a38eeb979 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 f20960ce8..29b9fb180 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; -- GitLab