diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp index fecdb2377b6b0b28ada7beb26c69126eb8e5f019..95c1d5a9b7cdb4748475ed8bdb2c3b7137a3845d 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsGroupBox.cpp @@ -122,9 +122,6 @@ namespace armarx::skills::gui this->executeSkillButton->setText( QString::fromStdString(SkillDetailGroupBox::EXECUTE_SKILL_BUTTON_TEXT)); - // not implemented -> disable - profileMenuWidget->resetArgsToProfile->setDisabled(true); - connectSignals(); } @@ -149,6 +146,10 @@ namespace armarx::skills::gui &QPushButton::clicked, skillDetailsTreeWidget, &SkillDetailsTreeWidget::pasteCurrentConfig); + connect(profileMenuWidget->resetArgsToProfile, + &QPushButton::clicked, + skillDetailsTreeWidget, + &SkillDetailsTreeWidget::resetCurrentConfig); } diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp index 819be6047b8b2f0a431105796e4ef860d93d8a5a..e40d8edd650317027914133a8f36b1ba2f2cbe13 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.cpp @@ -184,6 +184,30 @@ namespace armarx::skills::gui aronTreeWidgetController->setFromAron(data); } + void + SkillDetailsTreeWidget::resetCurrentConfig() + { + // this will always reset the args to the root profile + // good while there is only the root, not good when profiles are properly implemented + + + if (!shownSkill.has_value()) + { + return; + } + skills::SkillID& skillId = shownSkill.value().skillId; + auto& skills = memory->fetchSkills(); + ARMARX_CHECK(skillId.isProviderSpecified()); + + // find description + // did the provider die? + if (skills.count(skillId.providerId.value()) == 0 || + skills.at(skillId.providerId.value()).count(skillId) == 0) + return; + skills::SkillDescription descr = skills.at(skillId.providerId.value()).at(skillId); + this->updateContents(skillId, descr); + } + void SkillDetailsTreeWidget::resetWidget() { diff --git a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.h b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.h index 106f9200d40454525698b67cfa785b85a6fe27ab..1ac3bcdd1e59c8d6b842943ab09f7da174273273 100644 --- a/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.h +++ b/source/RobotAPI/libraries/skills_gui/skill_details/SkillDetailsTreeWidget.h @@ -22,11 +22,11 @@ namespace armarx::skills::gui aron::data::DictPtr getConfigAsAron(); void copyCurrentConfig(); void pasteCurrentConfig(); - void resetCurrentConfig(); - void resetWidget(); public slots: + // this will reset the args to the profile defaults + void resetCurrentConfig(); void disconnectGui(); void updateGui(); void resizeContents();