@@ -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