changeset 20423:2b28f509b645 stable

Fix missing sorting of the workspace view directly after start-up * workspace-view.cc(workspace_view): add sorting indicator, do not set the column by which the view is sorted here; (setModel) but here, after having set the model
author Torsten <ttl@justmail.de>
date Fri, 24 Jul 2015 14:23:28 +0200
parents 587357240e5e
children a8cc8318da8c
files libgui/src/workspace-view.cc
diffstat 1 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/workspace-view.cc	Tue Jun 30 21:15:19 2015 +0200
+++ b/libgui/src/workspace-view.cc	Fri Jul 24 14:23:28 2015 +0200
@@ -92,18 +92,20 @@
 
   QSettings *settings = resource_manager::get_settings ();
 
-  //enable sorting as previously configured
+  //enable sorting (setting column and order after model was set)
   view->setSortingEnabled (true);
-  view->sortByColumn (
+  // Initialize column order and width of the workspace
+  view->horizontalHeader ()->restoreState (
+    settings->value ("workspaceview/column_state").toByteArray ());
+  // Set header properties for sorting
+  view->horizontalHeader ()->setClickable (true);
+  view->horizontalHeader ()->setMovable (true);
+  view->horizontalHeader ()->setSortIndicator (
     settings->value ("workspaceview/sort_by_column",0).toInt (),
     static_cast<Qt::SortOrder>
     (settings->value ("workspaceview/sort_order", Qt::AscendingOrder).toUInt ())
   );
-  // Initialize column order and width of the workspace
-  view->horizontalHeader ()->restoreState (
-    settings->value ("workspaceview/column_state").toByteArray ());
-  // Make the header clickable to enable sorting
-  view->horizontalHeader ()->setClickable (true);
+  view->horizontalHeader ()->setSortIndicatorShown (true);
 
   // Init state of the filter
   _filter->addItems (settings->value ("workspaceview/mru_list").toStringList ());
@@ -160,6 +162,14 @@
 
   view->setModel (&_filter_model);
 
+  // set the sorting after a model was set, it would be ignored otherwise
+  QSettings *settings = resource_manager::get_settings ();
+  view->sortByColumn (
+    settings->value ("workspaceview/sort_by_column",0).toInt (),
+    static_cast<Qt::SortOrder>
+    (settings->value ("workspaceview/sort_order", Qt::AscendingOrder).toUInt ())
+  );
+
   _model = model;
 }