Skip to content

Commit 13f4caf

Browse files
committed
Optimising the catalogue creation process
1 parent 872c317 commit 13f4caf

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

src/DataFlowGraphicsScene.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -100,25 +100,27 @@ createSceneMenu(QPointF const scenePos)
100100

101101
auto registry = _graphModel.dataModelRegistry();
102102

103-
for (auto const& cat : registry->categories())
104-
{
105-
auto item = new QTreeWidgetItem(treeView);
106-
item->setText(0, cat);
107-
item->setFlags(item->flags() & ~Qt::ItemIsSelectable);
108-
}
109-
110103
for (auto const& assoc : registry->registeredModelsCategoryAssociation())
111104
{
112-
QList<QTreeWidgetItem*> parent = treeView->findItems(assoc.second,
113-
Qt::MatchExactly);
105+
// A node must have a parent
106+
QList<QTreeWidgetItem*> parentList;
107+
parentList.clear();
108+
parentList = treeView->findItems(assoc.second, Qt::MatchExactly);
114109

115-
if (parent.count() <= 0)
116-
continue;
110+
if (parentList.count() <= 0)
111+
{
112+
// Create a parent if it does not exist
113+
auto parentItem = new QTreeWidgetItem(treeView);
114+
parentItem->setText(0, assoc.second);
115+
parentItem->setFlags(parentItem->flags() & ~Qt::ItemIsSelectable);
116+
parentList.push_back(parentItem);
117+
}
117118

118-
auto item = new QTreeWidgetItem(parent.first());
119-
item->setText(0, assoc.first);
119+
auto childItem = new QTreeWidgetItem(parentList.first());
120+
childItem->setText(0, assoc.first);
120121
}
121-
122+
123+
treeView->sortByColumn(0, Qt::AscendingOrder);
122124
treeView->expandAll();
123125

124126
connect(treeView, &QTreeWidget::itemClicked,

0 commit comments

Comments
 (0)