Mercurial > octave
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) |