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