changeset 25851:507cee1b684e

removed all initial preferences for file browser from pref file (bug #54606) * default-qt-settings.in: removed all preferences for the file browser * files-dock-widget.cc (files-dock-widget): use new constants for preferences keys and default values, define a list of defaults values in addition to the list of keys, restore last columns state only if the related entry in the pref file does exist, add configurations for moving and clicking the headers; (save_settings): use new constants for preferences keys and default values; (display_directory): use new const. for preferences keys and default values; (headercontextmenu_requested) use new const. for pref keys and default values; (notice_settings): use new const. for preferences keys and default values * files-dock-widget.h: new class variable for list of default values * gui-preferences.h: constant definitions of all preference keys and defaults values for the file
author Torsten <mttl@mailbox.org>
date Sun, 02 Sep 2018 08:16:40 +0200
parents 153495e05477
children f6537847b043
files libgui/default-qt-settings.in libgui/src/files-dock-widget.cc libgui/src/files-dock-widget.h libgui/src/gui-preferences.h
diffstat 4 files changed, 67 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/default-qt-settings.in	Sat Sep 01 13:11:25 2018 -0700
+++ b/libgui/default-qt-settings.in	Sun Sep 02 08:16:40 2018 +0200
@@ -58,18 +58,6 @@
 persistent_collapsed=false
 column_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2\x12\0\0\0\x5\x1\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\x1\x90\0\0\0\x4\0\0\0\0\0\0\0\x82\0\0\0\x1\0\0\0\0)
 
-[filesdockwidget]
-sort_files_by_column=0
-sort_files_by_order=0
-column_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x4\xe\0\0\0\x3\0\0\0\x3\0\0\0\x64\0\0\0\x2\0\0\0\x64\0\0\0\x1\0\0\0\x64\0\0\x2\v\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\x2\v\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\0)
-showFilenames=true
-showFileSize=false
-showFileType=false
-showLastModified=false
-showHiddenFiles=false
-sync_octave_directory=true
-useAlternatingRowColors=true
-
 [Scintilla]
 Octave\style0\color=0
 Octave\style0\eolfill=false
--- a/libgui/src/files-dock-widget.cc	Sat Sep 01 13:11:25 2018 -0700
+++ b/libgui/src/files-dock-widget.cc	Sun Sep 02 08:16:40 2018 +0200
@@ -25,6 +25,7 @@
 #  include "config.h"
 #endif
 
+#include "gui-preferences.h"
 #include "resource-manager.h"
 #include "files-dock-widget.h"
 
@@ -82,11 +83,18 @@
     m_columns_shown.append (tr ("Alternating row colors"));
 
     m_columns_shown_keys = QStringList ();
-    m_columns_shown_keys.append ("filesdockwidget/showFileSize");
-    m_columns_shown_keys.append ("filesdockwidget/showFileType");
-    m_columns_shown_keys.append ("filesdockwidget/showLastModified");
-    m_columns_shown_keys.append ("filesdockwidget/showHiddenFiles");
-    m_columns_shown_keys.append ("filesdockwidget/useAlternatingRowColors");
+    m_columns_shown_keys.append (fb_show_size.key);
+    m_columns_shown_keys.append (fb_show_type.key);
+    m_columns_shown_keys.append (fb_show_date.key);
+    m_columns_shown_keys.append (fb_show_hidden.key);
+    m_columns_shown_keys.append (fb_show_altcol.key);
+
+    m_columns_shown_defs = QList <QVariant> ();
+    m_columns_shown_defs.append (fb_show_size.def);
+    m_columns_shown_defs.append (fb_show_type.def);
+    m_columns_shown_defs.append (fb_show_date.def);
+    m_columns_shown_defs.append (fb_show_hidden.def);
+    m_columns_shown_defs.append (fb_show_altcol.def);
 
     QWidget *container = new QWidget (this);
 
@@ -179,19 +187,21 @@
     // Create the QFileSystemModel starting in the desired directory
     QDir startup_dir;  // take current dir
 
-    if (settings->value ("filesdockwidget/restore_last_dir",false).toBool ())
+    if (settings->value (fb_restore_last_dir.key,
+                         fb_restore_last_dir.def).toBool ())
       {
         // restore last dir from previous session
         QStringList last_dirs
-          = settings->value ("filesdockwidget/mru_dir_list").toStringList ();
+          = settings->value (fb_mru_list.key).toStringList ();
         if (last_dirs.length () > 0)
           startup_dir = QDir (last_dirs.at (0));  // last dir in previous session
       }
-    else if (! settings->value ("filesdockwidget/startup_dir").toString ().isEmpty ())
+    else if (! settings->value (fb_startup_dir.key, fb_startup_dir.def)
+               .toString ().isEmpty ())
       {
         // do not restore but there is a startup dir configured
         startup_dir
-          = QDir (settings->value ("filesdockwidget/startup_dir").toString ());
+          = QDir (settings->value (fb_startup_dir.key).toString ());
       }
 
     if (! startup_dir.exists ())
@@ -217,16 +227,29 @@
     // get sort column and order as well as cloumn state (order and width)
 
     m_file_tree_view->sortByColumn (
-                                    settings->value ("filesdockwidget/sort_files_by_column",0).toInt (),
-                                    static_cast<Qt::SortOrder>
-                                    (settings->value ("filesdockwidget/sort_files_by_order",
-                                                      Qt::AscendingOrder).toUInt ())
-                                    );
-    m_file_tree_view->header ()->restoreState (
-                                               settings->value ("filesdockwidget/column_state").toByteArray ());
+          settings->value (fb_sort_column.key, fb_sort_column.def).toInt (),
+          static_cast<Qt::SortOrder> (
+            settings->value (fb_sort_order.key, fb_sort_order.def).toUInt ()));
+
+    if (settings->contains (fb_column_state.key))
+      m_file_tree_view->header ()->restoreState (
+                          settings->value (fb_column_state.key).toByteArray ());
+
+    // Set header properties for sorting
+#if defined (HAVE_QHEADERVIEW_SETSECTIONSCLICKABLE)
+    m_file_tree_view->header ()->setSectionsClickable (true);
+#else
+    m_file_tree_view->header ()->setClickable (true);
+#endif
+#if defined (HAVE_QHEADERVIEW_SETSECTIONSMOVABLE)
+    m_file_tree_view->header ()->setSectionsMovable (true);
+#else
+    m_file_tree_view->header ()->setMovable (true);
+#endif
+    m_file_tree_view->header ()->setSortIndicatorShown (true);
 
     QStringList mru_dirs =
-      settings->value ("filesdockwidget/mru_dir_list").toStringList ();
+      settings->value (fb_mru_list.key).toStringList ();
     m_current_directory->addItems (mru_dirs);
 
     m_current_directory->setEditText (
@@ -285,17 +308,16 @@
 
     int sort_column = m_file_tree_view->header ()->sortIndicatorSection ();
     Qt::SortOrder sort_order = m_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",
-                        m_file_tree_view->header ()->saveState ());
+    settings->setValue (fb_sort_column.key, sort_column);
+    settings->setValue (fb_sort_order.key, sort_order);
+    settings->setValue (fb_column_state.key, m_file_tree_view->header ()->saveState ());
 
     QStringList dirs;
     for (int i=0; i< m_current_directory->count (); i++)
       {
         dirs.append (m_current_directory->itemText (i));
       }
-    settings->setValue ("filesdockwidget/mru_dir_list", dirs);
+    settings->setValue (fb_mru_list.key, dirs);
 
     settings->sync ();
 
@@ -381,8 +403,8 @@
 
             QString suffix = fileInfo.suffix ().toLower ();
             QSettings *settings = resource_manager::get_settings ();
-            QString ext = settings->value ("filesdockwidget/txt_file_extensions",
-                                           "m;c;cc;cpp;h;txt").toString ();
+            QString ext = settings->value (fb_txt_file_ext.key,
+                                           fb_txt_file_ext.def).toString ();
             QStringList extensions = ext.split (";", QString::SkipEmptyParts);
 
             if (QFile::exists (abs_fname))
@@ -447,8 +469,8 @@
                                           m_sig_mapper, SLOT (map ()));
         m_sig_mapper->setMapping (action, i);
         action->setCheckable (true);
-        action->setChecked (
-                            settings->value (m_columns_shown_keys.at (i),true).toBool ());
+        action->setChecked (settings->value (
+          m_columns_shown_keys.at (i), m_columns_shown_defs.at (i)).toBool ());
       }
 
     connect (m_sig_mapper, SIGNAL (mapped (int)),
@@ -807,7 +829,7 @@
     // enable the buttons to sync octave/browser dir
     // only if this is not done by default
     m_sync_octave_dir
-      = settings->value ("filesdockwidget/sync_octave_directory",true).toBool ();
+      = settings->value (fb_sync_octdir.key, fb_sync_octdir.def).toBool ();
     m_sync_octave_directory_action->setEnabled (! m_sync_octave_dir);
     m_sync_browser_directory_action->setEnabled (! m_sync_octave_dir);
 
--- a/libgui/src/files-dock-widget.h	Sat Sep 01 13:11:25 2018 -0700
+++ b/libgui/src/files-dock-widget.h	Sun Sep 02 08:16:40 2018 +0200
@@ -206,6 +206,7 @@
 
     QStringList m_columns_shown;
     QStringList m_columns_shown_keys;
+    QList <QVariant> m_columns_shown_defs;
     QSignalMapper *m_sig_mapper;
   };
 }
--- a/libgui/src/gui-preferences.h	Sat Sep 01 13:11:25 2018 -0700
+++ b/libgui/src/gui-preferences.h	Sun Sep 02 08:16:40 2018 +0200
@@ -70,5 +70,22 @@
 #endif
 
 
+// Files dock widget
+
+const gui_pref fb_column_state ("filesdockwidget/column_state", QVariant ());
+const gui_pref fb_show_ ("filesdockwidget/column_state", QVariant ());
+const gui_pref fb_mru_list ("filesdockwidget/mru_dir_list", QVariant (QStringList ()));
+const gui_pref fb_show_size ("filesdockwidget/showFileSize", QVariant (false));
+const gui_pref fb_show_type ("filesdockwidget/showFileType", QVariant (false));
+const gui_pref fb_show_date ("filesdockwidget/showLastModified", QVariant (false));
+const gui_pref fb_show_hidden ("filesdockwidget/showHiddenFiles", QVariant (false));
+const gui_pref fb_show_altcol ("filesdockwidget/useAlternatingRowColors", QVariant (true));
+const gui_pref fb_sort_column ("filesdockwidget/sort_files_by_column", QVariant (0));
+const gui_pref fb_sort_order ("filesdockwidget/sort_files_by_order", QVariant (Qt::AscendingOrder));
+const gui_pref fb_sync_octdir ("filesdockwidget/sync_octave_directory", QVariant (true));
+const gui_pref fb_restore_last_dir ("filesdockwidget/restore_last_dir", QVariant (false));
+const gui_pref fb_startup_dir ("filesdockwidget/startup_dir", QVariant (QString ()));
+const gui_pref fb_txt_file_ext ("filesdockwidget/txt_file_extensions",
+                                QVariant ("m;c;cc;cpp;h;txt"));
 
 #endif