Skip to content

Commit 6f623c3

Browse files
committed
Keep models of a category in the order of registration
1 parent a8264e3 commit 6f623c3

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

include/nodes/internal/DataModelRegistry.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
3636
using RegistryItemCreator = std::function<RegistryItemPtr()>;
3737
using RegisteredModelCreatorsMap = std::unordered_map<QString, RegistryItemCreator>;
3838
using RegisteredModelsCategoryMap = std::unordered_map<QString, QString>;
39+
using RegisteredModelsOrder = std::vector<QString>;
3940
using CategoriesSet = std::set<QString>;
4041

4142
using RegisteredTypeConvertersMap = std::map<TypeConverterId, TypeConverter>;
@@ -82,6 +83,8 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
8283

8384
RegisteredModelCreatorsMap const &registeredModelCreators() const;
8485

86+
RegisteredModelsOrder const& registeredModelsOrder() const;
87+
8588
RegisteredModelsCategoryMap const &registeredModelsCategoryAssociation() const;
8689

8790
CategoriesSet const &categories() const;
@@ -97,6 +100,8 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
97100

98101
RegisteredModelCreatorsMap _registeredItemCreators;
99102

103+
RegisteredModelsOrder _registeredModelsOrder;
104+
100105
RegisteredTypeConvertersMap _registeredTypeConverters;
101106

102107
private:
@@ -129,6 +134,7 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
129134
{
130135
_registeredItemCreators[name] = std::move(creator);
131136
_categories.insert(category);
137+
_registeredModelsOrder.push_back(name);
132138
_registeredModelsCategory[name] = category;
133139
}
134140
}
@@ -142,6 +148,7 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
142148
{
143149
_registeredItemCreators[name] = std::move(creator);
144150
_categories.insert(category);
151+
_registeredModelsOrder.push_back(name);
145152
_registeredModelsCategory[name] = category;
146153
}
147154
}

src/DataModelRegistry.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ registeredModelCreators() const
3030
return _registeredItemCreators;
3131
}
3232

33+
DataModelRegistry::RegisteredModelsOrder const &
34+
DataModelRegistry::
35+
registeredModelsOrder() const
36+
{
37+
return _registeredModelsOrder;
38+
}
3339

3440
DataModelRegistry::RegisteredModelsCategoryMap const &
3541
DataModelRegistry::

src/FlowView.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,13 @@ contextMenuEvent(QContextMenuEvent *event)
141141
topLevelItems[cat] = item;
142142
}
143143

144-
for (auto const &assoc : _scene->registry().registeredModelsCategoryAssociation())
144+
auto const &assocCategory = _scene->registry().registeredModelsCategoryAssociation();
145+
for (auto const &name : _scene->registry().registeredModelsOrder())
145146
{
146-
auto parent = topLevelItems[assoc.second];
147+
auto parent = topLevelItems[assocCategory.at(name)];
147148
auto item = new QTreeWidgetItem(parent);
148-
item->setText(0, assoc.first);
149-
item->setData(0, Qt::UserRole, assoc.first);
149+
item->setText(0, name);
150+
item->setData(0, Qt::UserRole, name);
150151
}
151152

152153
treeView->expandAll();

0 commit comments

Comments
 (0)