1414#include < QtWidgets/QTreeView>
1515#include < QStandardItem>
1616#include < QPushButton>
17+ #include < QGridLayout>
1718
1819#include < QtCore/QBuffer>
1920#include < QtCore/QByteArray>
@@ -80,38 +81,33 @@ createSceneMenu(QPointF const scenePos)
8081{
8182 QMenu* modelMenu = new QMenu ();
8283
84+ QWidget *menuWidget = new QWidget ();
85+ QGridLayout *layout = new QGridLayout (menuWidget);
86+ layout->setContentsMargins (0 , 0 , 0 , 0 );
87+ layout->setSpacing (3 );
88+
8389 // Add filterbox to the context menu
84- auto * txtBox = new QLineEdit (modelMenu );
90+ QLineEdit * txtBox = new QLineEdit ();
8591 txtBox->setPlaceholderText (QStringLiteral (" Filter" ));
8692 txtBox->setClearButtonEnabled (true );
93+ txtBox->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
94+ layout->addWidget (txtBox, 0 , 0 );
8795
88- auto * txtBoxAction = new QWidgetAction (modelMenu);
89- txtBoxAction->setDefaultWidget (txtBox);
90-
91- // 1.
92- modelMenu->addAction (txtBoxAction);
96+ // Add sort button
97+ QPushButton* sortButton = new QPushButton (" Sort" );
98+ sortButton->setCheckable (true );
99+ layout->addWidget (sortButton, 0 , 1 );
93100
94101 // Add result treeview to the context menu
95- QTreeView* treeView = new QTreeView (modelMenu );
102+ QTreeView* treeView = new QTreeView ();
96103 treeView->header ()->close ();
97-
104+ layout-> addWidget (treeView, 1 , 0 , 1 , 2 );
98105 QStandardItemModel* treeModel = new QStandardItemModel (treeView);
99106
100- auto * treeViewAction = new QWidgetAction (modelMenu);
101- treeViewAction->setDefaultWidget (treeView);
102-
103- // 2.
104- modelMenu->addAction (treeViewAction);
107+ auto * menuWidgetAction = new QWidgetAction (menuWidget);
108+ menuWidgetAction->setDefaultWidget (menuWidget);
105109
106- // Add sort Button
107- auto * sortButton = new QPushButton (" Sort" );
108- sortButton->setCheckable (true );
109-
110- auto * sortButtonAction = new QWidgetAction (modelMenu);
111- sortButtonAction->setDefaultWidget (sortButton);
112-
113- // 3.
114- modelMenu->addAction (sortButtonAction);
110+ modelMenu->addAction (menuWidgetAction);
115111
116112 auto registry = _graphModel.dataModelRegistry ();
117113
@@ -143,6 +139,12 @@ createSceneMenu(QPointF const scenePos)
143139 treeView->setModel (treeModel);
144140 treeView->expandAll ();
145141
142+ if (_sortMenu)
143+ {
144+ sortButton->setChecked (_sortMenu);
145+ treeView->sortByColumn (0 , Qt::AscendingOrder);
146+ }
147+
146148 connect (sortButton, &QPushButton::clicked, this ,
147149 [treeModel, treeView](bool checked)
148150 {
@@ -153,12 +155,6 @@ createSceneMenu(QPointF const scenePos)
153155 treeView->sortByColumn (0 , Qt::AscendingOrder);
154156 });
155157
156- if (_sortMenu)
157- {
158- sortButton->setChecked (_sortMenu);
159- treeView->sortByColumn (0 , Qt::AscendingOrder);
160- }
161-
162158 connect (treeView, &QTreeView::clicked,
163159 [this ,
164160 modelMenu,
0 commit comments