comparison libgui/src/workspace-view.cc @ 19982:9a8be23d2c05

extend sorting of workspave view widget * workspace-view.cc (workspace_view): get last sort configuration from settings file; (~workspace_view): save current sort settings into file;
author Torsten <ttl@justmail.de>
date Tue, 24 Mar 2015 21:07:51 +0100
parents 9d277f245d11
children 587357240e5e
comparison
equal deleted inserted replaced
19981:9d277f245d11 19982:9a8be23d2c05
70 view->setShowGrid (false); 70 view->setShowGrid (false);
71 (view->verticalHeader) ()->hide (); 71 (view->verticalHeader) ()->hide ();
72 view->setAlternatingRowColors (true); 72 view->setAlternatingRowColors (true);
73 view_previous_row_count = 0; 73 view_previous_row_count = 0;
74 74
75 //enable sorting by parameter name
76 view->setSortingEnabled (true);
77 view->sortByColumn (0,Qt::AscendingOrder);
78
79
80 // Set an empty widget, so we can assign a layout to it. 75 // Set an empty widget, so we can assign a layout to it.
81 setWidget (new QWidget (this)); 76 setWidget (new QWidget (this));
82 77
83 // Create a new layout and add widgets to it. 78 // Create a new layout and add widgets to it.
84 QVBoxLayout *vbox_layout = new QVBoxLayout (); 79 QVBoxLayout *vbox_layout = new QVBoxLayout ();
95 90
96 // Initialize collapse/expand state of the workspace subcategories. 91 // Initialize collapse/expand state of the workspace subcategories.
97 92
98 QSettings *settings = resource_manager::get_settings (); 93 QSettings *settings = resource_manager::get_settings ();
99 94
95 //enable sorting as previously configured
96 view->setSortingEnabled (true);
97 view->sortByColumn (
98 settings->value ("workspaceview/sort_by_column",0).toInt (),
99 static_cast<Qt::SortOrder>
100 (settings->value ("workspaceview/sort_order", Qt::AscendingOrder).toUInt ())
101 );
100 // Initialize column order and width of the workspace 102 // Initialize column order and width of the workspace
101 view->horizontalHeader ()->restoreState ( 103 view->horizontalHeader ()->restoreState (
102 settings->value ("workspaceview/column_state").toByteArray ()); 104 settings->value ("workspaceview/column_state").toByteArray ());
103 // Make the header clickable to enable sorting 105
104 view->horizontalHeader ()->setClickable (true);
105 // Init state of the filter 106 // Init state of the filter
106 _filter->addItems (settings->value ("workspaceview/mru_list").toStringList ()); 107 _filter->addItems (settings->value ("workspaceview/mru_list").toStringList ());
107 108
108 bool filter_state = 109 bool filter_state =
109 settings->value ("workspaceview/filter_active", false).toBool (); 110 settings->value ("workspaceview/filter_active", false).toBool ();
131 { 132 {
132 QSettings *settings = resource_manager::get_settings (); 133 QSettings *settings = resource_manager::get_settings ();
133 134
134 settings->setValue ("workspaceview/column_state", 135 settings->setValue ("workspaceview/column_state",
135 view->horizontalHeader ()->saveState ()); 136 view->horizontalHeader ()->saveState ());
137
138 int sort_column = view->horizontalHeader ()->sortIndicatorSection ();
139 Qt::SortOrder sort_order = view->horizontalHeader ()->sortIndicatorOrder ();
140 settings->setValue ("workspaceview/sort_by_column", sort_column);
141 settings->setValue ("workspaceview/sort_order", sort_order);
142
136 settings->setValue ("workspaceview/filter_active", 143 settings->setValue ("workspaceview/filter_active",
137 _filter_checkbox->isChecked ()); 144 _filter_checkbox->isChecked ());
138 145
139 QStringList mru; 146 QStringList mru;
140 for (int i = 0; i < _filter->count (); i++) 147 for (int i = 0; i < _filter->count (); i++)
148 { 155 {
149 _filter_model.setSourceModel (model); 156 _filter_model.setSourceModel (model);
150 _filter_model.setFilterKeyColumn(0); 157 _filter_model.setFilterKeyColumn(0);
151 158
152 view->setModel (&_filter_model); 159 view->setModel (&_filter_model);
160
153 _model = model; 161 _model = model;
154 } 162 }
155 163
156 void 164 void
157 workspace_view::closeEvent (QCloseEvent *e) 165 workspace_view::closeEvent (QCloseEvent *e)