Skip to content

Commit faf702a

Browse files
committed
Keep models of a category in the order of registration
1 parent 2c94a67 commit faf702a

3 files changed

Lines changed: 20 additions & 6 deletions

File tree

include/nodes/internal/DataModelRegistry.hpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#pragma once
22

3-
#include <unordered_map>
4-
#include <set>
53
#include <memory>
4+
#include <set>
5+
#include <unordered_map>
6+
#include <vector>
67

78
#include <QtCore/QString>
89

@@ -32,6 +33,7 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
3233
using RegistryItemPtr = std::unique_ptr<NodeDataModel>;
3334
using RegisteredModelsMap = std::unordered_map<QString, RegistryItemPtr>;
3435
using RegisteredModelsCategoryMap = std::unordered_map<QString, QString>;
36+
using RegisteredModelsOrder = std::vector<QString>;
3537
using CategoriesSet = std::set<QString>;
3638

3739
using RegisteredTypeConvertersMap = std::map<TypeConverterId, TypeConverter>;
@@ -61,6 +63,7 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
6163
{
6264
_registeredModels[name] = std::move(uniqueModel);
6365
_categories.insert(category);
66+
_registeredModelsOrder.push_back(name);
6467
_registeredModelsCategory[name] = category;
6568
}
6669
}
@@ -82,6 +85,8 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
8285

8386
RegisteredModelsMap const &registeredModels() const;
8487

88+
RegisteredModelsOrder const& registeredModelsOrder() const;
89+
8590
RegisteredModelsCategoryMap const &registeredModelsCategoryAssociation() const;
8691

8792
CategoriesSet const &categories() const;
@@ -97,6 +102,8 @@ class NODE_EDITOR_PUBLIC DataModelRegistry
97102

98103
RegisteredModelsMap _registeredModels;
99104

105+
RegisteredModelsOrder _registeredModelsOrder;
106+
100107
RegisteredTypeConvertersMap _registeredTypeConverters;
101108
};
102109
}

src/DataModelRegistry.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ registeredModels() const
3030
return _registeredModels;
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)