# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1349096523 14400 # Node ID e8b117b405f93412798ba45db1706e612d345352 # Parent abf34bbcd0537767bc3c00ebf199abfa5cc3bf05# Parent 1e64aff609c335039ee72892cc4ce247988bd07c Merge in Torsten's changes diff --git a/libgui/src/files-dockwidget.cc b/libgui/src/files-dockwidget.cc --- a/libgui/src/files-dockwidget.cc +++ b/libgui/src/files-dockwidget.cc @@ -33,6 +33,7 @@ #include #include #include +#include files_dock_widget::files_dock_widget (QWidget *p) : QDockWidget (p) @@ -81,6 +82,15 @@ _file_tree_view->setColumnHidden (3, true); _file_tree_view->setStatusTip (tr ("Doubleclick a file to open it.")); + // get sort column and order as well as cloumn state (order and width) + QSettings *settings = resource_manager::get_settings (); + // FIXME -- what should happen if settings is 0? + _file_tree_view->sortByColumn ( + settings->value ("filesdockwidget/sort_files_by_column",0).toInt (), + static_cast(settings->value ("filesdockwidget/sort_files_by_order",Qt::AscendingOrder).toUInt ()) + ); + _file_tree_view->header ()->restoreState (settings->value ("filesdockwidget/column_state").toByteArray ()); + _current_directory->setText(_file_system_model->fileInfo (rootPathIndex). absoluteFilePath ()); @@ -109,6 +119,16 @@ setFocusProxy (_current_directory); } +files_dock_widget::~files_dock_widget () +{ + QSettings *settings = resource_manager::get_settings (); + int sort_column = _file_tree_view->header ()->sortIndicatorSection (); + Qt::SortOrder sort_order = _file_tree_view->header ()->sortIndicatorOrder (); + settings->setValue ("filesdockwidget/sort_files_by_column", sort_column); + settings->setValue ("filesdockwidget/sort_files_by_order", sort_order); + settings->setValue ("filesdockwidget/column_state", _file_tree_view->header ()->saveState ()); +} + void files_dock_widget::item_double_clicked (const QModelIndex & index) { diff --git a/libgui/src/files-dockwidget.h b/libgui/src/files-dockwidget.h --- a/libgui/src/files-dockwidget.h +++ b/libgui/src/files-dockwidget.h @@ -48,6 +48,7 @@ public: /** Constructs a new files_dock_widget. */ files_dock_widget (QWidget *parent = 0); + ~files_dock_widget (); public slots: /** Slot for handling a change in directory via double click. */ diff --git a/libgui/src/workspace-view.cc b/libgui/src/workspace-view.cc --- a/libgui/src/workspace-view.cc +++ b/libgui/src/workspace-view.cc @@ -26,6 +26,7 @@ #include "workspace-view.h" #include "resource-manager.h" +#include #include #include #include @@ -68,6 +69,10 @@ _explicit_collapse.global = settings->value ("workspaceview/global_collapsed", false).toBool ();; _explicit_collapse.persistent = settings->value ("workspaceview/persistent_collapsed", false).toBool ();; + // Initialize column order and width of the workspace + + _workspace_tree_view->header ()->restoreState (settings->value("workspaceview/column_state").toByteArray ()); + // Connect signals and slots. connect (this, SIGNAL (visibilityChanged (bool)), this, SLOT(handle_visibility_changed (bool))); @@ -94,6 +99,7 @@ settings->setValue("workspaceview/local_collapsed", _explicit_collapse.local); settings->setValue("workspaceview/global_collapsed", _explicit_collapse.global); settings->setValue("workspaceview/persistent_collapsed", _explicit_collapse.persistent); + settings->setValue("workspaceview/column_state", _workspace_tree_view->header ()->saveState ()); } void