1515#include < QtWidgets/QTreeView>
1616#include < QStandardItem>
1717#include < QPushButton>
18+ #include < QGridLayout>
1819
1920#include < QtCore/QBuffer>
2021#include < QtCore/QByteArray>
@@ -81,38 +82,33 @@ createSceneMenu(QPointF const scenePos)
8182{
8283 QMenu* modelMenu = new QMenu ();
8384
85+ QWidget *menuWidget = new QWidget ();
86+ QGridLayout *layout = new QGridLayout (menuWidget);
87+ layout->setContentsMargins (0 , 0 , 0 , 0 );
88+ layout->setSpacing (3 );
89+
8490 // Add filterbox to the context menu
85- auto * txtBox = new QLineEdit (modelMenu );
91+ QLineEdit * txtBox = new QLineEdit ();
8692 txtBox->setPlaceholderText (QStringLiteral (" Filter" ));
8793 txtBox->setClearButtonEnabled (true );
94+ txtBox->setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding);
95+ layout->addWidget (txtBox, 0 , 0 );
8896
89- auto * txtBoxAction = new QWidgetAction (modelMenu);
90- txtBoxAction->setDefaultWidget (txtBox);
91-
92- // 1.
93- modelMenu->addAction (txtBoxAction);
97+ // Add sort button
98+ QPushButton* sortButton = new QPushButton (" Sort" );
99+ sortButton->setCheckable (true );
100+ layout->addWidget (sortButton, 0 , 1 );
94101
95102 // Add result treeview to the context menu
96- QTreeView* treeView = new QTreeView (modelMenu );
103+ QTreeView* treeView = new QTreeView ();
97104 treeView->header ()->close ();
98-
105+ layout-> addWidget (treeView, 1 , 0 , 1 , 2 );
99106 QStandardItemModel* treeModel = new QStandardItemModel (treeView);
100107
101- auto * treeViewAction = new QWidgetAction (modelMenu);
102- treeViewAction->setDefaultWidget (treeView);
103-
104- // 2.
105- modelMenu->addAction (treeViewAction);
108+ auto * menuWidgetAction = new QWidgetAction (menuWidget);
109+ menuWidgetAction->setDefaultWidget (menuWidget);
106110
107- // Add sort Button
108- auto * sortButton = new QPushButton (" Sort" );
109- sortButton->setCheckable (true );
110-
111- auto * sortButtonAction = new QWidgetAction (modelMenu);
112- sortButtonAction->setDefaultWidget (sortButton);
113-
114- // 3.
115- modelMenu->addAction (sortButtonAction);
111+ modelMenu->addAction (menuWidgetAction);
116112
117113 auto registry = _graphModel.dataModelRegistry ();
118114
@@ -144,6 +140,12 @@ createSceneMenu(QPointF const scenePos)
144140 treeView->setModel (treeModel);
145141 treeView->expandAll ();
146142
143+ if (_sortMenu)
144+ {
145+ sortButton->setChecked (_sortMenu);
146+ treeView->sortByColumn (0 , Qt::AscendingOrder);
147+ }
148+
147149 connect (sortButton, &QPushButton::clicked, this ,
148150 [treeModel, treeView](bool checked)
149151 {
@@ -154,12 +156,6 @@ createSceneMenu(QPointF const scenePos)
154156 treeView->sortByColumn (0 , Qt::AscendingOrder);
155157 });
156158
157- if (_sortMenu)
158- {
159- sortButton->setChecked (_sortMenu);
160- treeView->sortByColumn (0 , Qt::AscendingOrder);
161- }
162-
163159 connect (treeView, &QTreeView::clicked,
164160 [this ,
165161 modelMenu,
0 commit comments