diff --git a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp index 9909cc1675edf8ae1ae94a33ae878bde21955498..cf77c2ca426489d3755bd6e284dd0a392d36700b 100644 --- a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp +++ b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.cpp @@ -27,6 +27,7 @@ namespace armarx::skills::gui void SkillTreeWidget::updateSkills() { + setSortingEnabled(false); const auto skills = memory->fetchSkills(); // update tree view. Remove non-existing elements @@ -76,6 +77,7 @@ namespace armarx::skills::gui // update tree view. Add new elements for (const auto& [providerId, providedSkills] : skills) { + bool newProvider = false; QTreeWidgetItem* providerItem = nullptr; for (int i = 0; i < this->topLevelItemCount(); ++i) { @@ -94,6 +96,8 @@ namespace armarx::skills::gui { providerItem = new QTreeWidgetItem(this); providerItem->setText(0, QString::fromStdString(providerId.providerName)); + // expand new items + newProvider = true; } for (const auto& [skillId, skill] : providedSkills) @@ -118,7 +122,14 @@ namespace armarx::skills::gui skillItem->setText(0, QString::fromStdString(skillId.skillName)); } } + + if (newProvider) + providerItem->setExpanded(true); } + + setSortingEnabled(true); + sortByColumn(0, Qt::AscendingOrder); + sortByColumn(1, Qt::AscendingOrder); } void diff --git a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.h b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.h index c076d2101f0016056f13dd4a75adc7022fa5a50a..61ec5cc85314d0318a951e8216a620d1f1d9a7c8 100644 --- a/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.h +++ b/source/RobotAPI/libraries/skills_gui/skills/SkillTreeWidget.h @@ -51,6 +51,8 @@ namespace armarx::skills::gui private: SelectedSkill selectedSkill; + static const constexpr bool PROVIDER_EXPANDED_DEFAULT = true; + void setupUi(); void connectSignals(); };