changeset 27611:0495b64288f7

use new gui_settings class instead of using QSettings directly * gui-settings.h, gui-settings.cc: New files. Define gui_settings class derived from QSettings. * libgui/src/module.mk: Update. Change all uses of QSettings to use gui_settings instead.
author John W. Eaton <jwe@octave.org>
date Fri, 01 Nov 2019 02:17:13 -0400
parents 8586eb41abf5
children 62236e51a8c6
files libgui/graphics/annotation-dialog.cc libgui/qterminal/libqterminal/QTerminal.cc libgui/qterminal/libqterminal/QTerminal.h libgui/src/documentation-dock-widget.cc libgui/src/documentation-dock-widget.h libgui/src/documentation.cc libgui/src/documentation.h libgui/src/dw-main-window.cc libgui/src/dw-main-window.h libgui/src/external-editor-interface.cc libgui/src/files-dock-widget.cc libgui/src/files-dock-widget.h libgui/src/find-files-dialog.cc libgui/src/gui-settings.cc libgui/src/gui-settings.h libgui/src/history-dock-widget.cc libgui/src/history-dock-widget.h libgui/src/m-editor/file-editor-interface.h libgui/src/m-editor/file-editor-tab.cc libgui/src/m-editor/file-editor-tab.h libgui/src/m-editor/file-editor.cc libgui/src/m-editor/file-editor.h libgui/src/m-editor/octave-qscintilla.cc libgui/src/m-editor/octave-qscintilla.h libgui/src/main-window.cc libgui/src/main-window.h libgui/src/module.mk libgui/src/news-reader.cc libgui/src/octave-dock-widget.cc libgui/src/octave-dock-widget.h libgui/src/qt-interpreter-events.cc libgui/src/qt-interpreter-events.h libgui/src/resource-manager.cc libgui/src/resource-manager.h libgui/src/set-path-dialog.cc libgui/src/settings-dialog.cc libgui/src/settings-dialog.h libgui/src/shortcut-manager.cc libgui/src/shortcut-manager.h libgui/src/terminal-dock-widget.cc libgui/src/variable-editor.cc libgui/src/variable-editor.h libgui/src/welcome-wizard.cc libgui/src/workspace-model.cc libgui/src/workspace-model.h libgui/src/workspace-view.cc libgui/src/workspace-view.h
diffstat 47 files changed, 276 insertions(+), 172 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/annotation-dialog.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/graphics/annotation-dialog.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -28,9 +28,11 @@
 #include <QPushButton>
 #include <QPalette>
 
+#include "gui-settings.h"
+#include "resource-manager.h"
+
 #include "QtHandlesUtils.h"
 #include "annotation-dialog.h"
-#include "resource-manager.h"
 #include "ui-annotation-dialog.h"
 
 using namespace QtHandles;
@@ -48,7 +50,7 @@
 {
   ui->setupUi (this);
 
-  QSettings *settings = octave::resource_manager::get_settings ();
+  octave::gui_settings *settings = octave::resource_manager::get_settings ();
 
   // restore last geometry
   if (settings)
@@ -92,7 +94,7 @@
   QDialogButtonBox::ButtonRole button_role
     = ui->button_box->buttonRole (button);
 
-  QSettings *settings = octave::resource_manager::get_settings ();
+  octave::gui_settings *settings = octave::resource_manager::get_settings ();
 
   // save position
   if (settings)
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -189,9 +189,10 @@
 }
 
 void
-QTerminal::notice_settings (const QSettings *settings)
+QTerminal::notice_settings (const gui_settings *settings)
 {
-  // QSettings pointer is checked before emitting.
+  if (! settings)
+    return;
 
   // Set terminal font:
   QFont term_font = QFont ();
--- a/libgui/qterminal/libqterminal/QTerminal.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/qterminal/libqterminal/QTerminal.h	Fri Nov 01 02:17:13 2019 -0400
@@ -24,7 +24,6 @@
 #ifndef QTERMINAL_H
 #define QTERMINAL_H
 
-#include <QSettings>
 #include <QKeySequence>
 #include <QWidget>
 #include <QStringList>
@@ -35,8 +34,11 @@
 #include <QApplication>
 #include <QAction>
 
+#include "gui-settings.h"
 #include "resource-manager.h"
 
+using octave::gui_settings;
+
 class QTerminal : public QWidget
 {
   Q_OBJECT
@@ -109,7 +111,7 @@
 
   virtual void handleCustomContextMenuRequested (const QPoint& at);
 
-  void notice_settings (const QSettings *settings);
+  void notice_settings (const gui_settings *settings);
 
   virtual void init_terminal_size (void) { }
 
@@ -187,8 +189,8 @@
     connect (this, SIGNAL (execute_command_in_terminal_signal (const QString&)),
              xparent, SLOT (execute_command_in_terminal (const QString&)));
 
-    connect (xparent, SIGNAL (settings_changed (const QSettings *)),
-             this, SLOT (notice_settings (const QSettings *)));
+    connect (xparent, SIGNAL (settings_changed (const gui_settings *)),
+             this, SLOT (notice_settings (const gui_settings *)));
 
     connect (xparent, SIGNAL (init_terminal_size_signal ()),
              this, SLOT (init_terminal_size ()));
--- a/libgui/src/documentation-dock-widget.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/documentation-dock-widget.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -56,7 +56,7 @@
       delete m_docs;
   }
 
-  void documentation_dock_widget::notice_settings (const QSettings *settings)
+  void documentation_dock_widget::notice_settings (const gui_settings *settings)
   {
     m_docs->notice_settings (settings);
   }
--- a/libgui/src/documentation-dock-widget.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/documentation-dock-widget.h	Fri Nov 01 02:17:13 2019 -0400
@@ -39,7 +39,7 @@
 
   public slots:
 
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
 
   protected slots:
 
--- a/libgui/src/documentation.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/documentation.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -560,7 +560,7 @@
       m_doc_browser->moveCursor (QTextCursor::Start);
   }
 
-  void documentation::notice_settings (const QSettings *settings)
+  void documentation::notice_settings (const gui_settings *settings)
   {
     // If m_help_engine is not defined, the object accessed by this method
     // are not valid. Thus, just return in this case
@@ -908,7 +908,7 @@
       QDesktopServices::openUrl (url);
   }
 
-  void documentation_browser::notice_settings (const QSettings *)
+  void documentation_browser::notice_settings (const gui_settings *)
   { }
 
   QVariant documentation_browser::loadResource (int type, const QUrl &url)
--- a/libgui/src/documentation.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/documentation.h	Fri Nov 01 02:17:13 2019 -0400
@@ -25,7 +25,6 @@
 
 #include <QComboBox>
 #include <QMenu>
-#include <QSettings>
 #include <QShortcut>
 #include <QSplitter>
 #include <QTextBrowser>
@@ -34,6 +33,8 @@
 #include <QWidget>
 #include <QtHelp/QHelpEngine>
 
+#include "gui-settings.h"
+
 namespace octave
 {
   //! Documentation browser derived from Textbrowser
@@ -53,7 +54,7 @@
 
     void handle_index_clicked (const QUrl& url,
                                const QString& keyword = QString ());
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
 
     //! Zooming in and out while taking care of the zoom level
     //!@{
@@ -101,7 +102,7 @@
 
   public slots:
 
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
 
     void copyClipboard (void);
     void pasteClipboard (void);
--- a/libgui/src/dw-main-window.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/dw-main-window.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -130,7 +130,7 @@
   }
 
   // Update the settings
-  void dw_main_window::notice_settings (const QSettings*)
+  void dw_main_window::notice_settings (const gui_settings *)
   {
     shortcut_manager::set_shortcut (m_close_action, "editor_file:close");
     shortcut_manager::set_shortcut (m_close_all_action, "editor_file:close_all");
--- a/libgui/src/dw-main-window.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/dw-main-window.h	Fri Nov 01 02:17:13 2019 -0400
@@ -24,7 +24,8 @@
 #define octave_dw_main_window_h 1
 
 #include <QMainWindow>
-#include <QSettings>
+
+#include "gui-settings.h"
 
 namespace octave
 {
@@ -47,7 +48,7 @@
 
   public slots:
 
-    void notice_settings (const QSettings*);
+    void notice_settings (const gui_settings *);
 
   protected slots:
 
--- a/libgui/src/external-editor-interface.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/external-editor-interface.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -26,9 +26,9 @@
 
 #include <QMessageBox>
 #include <QProcess>
-#include <QSettings>
 
 #include "external-editor-interface.h"
+#include "gui-settings.h"
 #include "resource-manager.h"
 
 namespace octave
@@ -97,7 +97,7 @@
   // Get and verify the settings of the external editor program
   QString external_editor_interface::external_editor (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     QString editor = settings->value ("customFileEditor").toString ();
 
     // check the settings (avoid an empty string)
--- a/libgui/src/files-dock-widget.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/files-dock-widget.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -184,7 +184,7 @@
     connect (m_sync_browser_directory_action, SIGNAL (triggered ()), this,
              SLOT (do_sync_browser_directory ()));
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     // FIXME: what should happen if settings is 0?
 
     // Create the QFileSystemModel starting in the desired directory
@@ -303,7 +303,7 @@
 
   void files_dock_widget::save_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       return;
@@ -404,7 +404,7 @@
             QString abs_fname = fileInfo.absoluteFilePath ();
 
             QString suffix = fileInfo.suffix ().toLower ();
-            QSettings *settings = resource_manager::get_settings ();
+            gui_settings *settings = resource_manager::get_settings ();
             QString ext = settings->value (fb_txt_file_ext.key,
                                            fb_txt_file_ext.def).toString ();
             QStringList extensions = ext.split (";", QString::SkipEmptyParts);
@@ -432,7 +432,7 @@
 
   void files_dock_widget::toggle_header (int col)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QString key = m_columns_shown_keys.at (col);
     bool shown = settings->value (key,false).toBool ();
@@ -463,7 +463,7 @@
       delete m_sig_mapper;
     m_sig_mapper = new QSignalMapper (this);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     for (int i = 0; i < m_columns_shown.size (); i++)
       {
@@ -856,7 +856,7 @@
       }
   }
 
-  void files_dock_widget::notice_settings (const QSettings *settings)
+  void files_dock_widget::notice_settings (const gui_settings *settings)
   {
     // Qsettings pointer is checked before emitting.
 
--- a/libgui/src/files-dock-widget.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/files-dock-widget.h	Fri Nov 01 02:17:13 2019 -0400
@@ -128,7 +128,7 @@
 
     //! Tells the widget to react on changed settings.
 
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
 
     void save_settings (void);
 
--- a/libgui/src/find-files-dialog.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/find-files-dialog.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -60,7 +60,7 @@
     connect (m_timer, SIGNAL (timeout (void)),
              this, SLOT (look_for_files (void)));
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QLabel *file_name_label = new QLabel (tr ("Named:"));
     m_file_name_edit = new QLineEdit;
@@ -210,7 +210,7 @@
 
   void find_files_dialog::save_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       return;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/gui-settings.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -0,0 +1,32 @@
+/*
+
+Copyright (C) 2019 John W. Eaton
+
+This file is part of Octave.
+
+Octave is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Octave is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<https://www.gnu.org/licenses/>.
+
+*/
+
+#if defined (HAVE_CONFIG_H)
+#  include "config.h"
+#endif
+
+#include "gui-settings.h"
+
+namespace octave
+{
+  // Additional gui_settings functions will be added later.
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/gui-settings.h	Fri Nov 01 02:17:13 2019 -0400
@@ -0,0 +1,57 @@
+/*
+
+Copyright (C) 2019 John W. Eaton
+
+This file is part of Octave.
+
+Octave is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Octave is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<https://www.gnu.org/licenses/>.
+
+*/
+
+#if ! defined (octave_gui_settings_h)
+#define octave_gui_settings_h 1
+
+#include <QSettings>
+
+namespace octave
+{
+  class gui_settings : public QSettings
+  {
+  public:
+
+    gui_settings (const QString& file_name, QSettings::Format format,
+                  QObject *parent = nullptr)
+      : QSettings (file_name, format, parent)
+    { }
+
+    gui_settings (QSettings::Format format, QSettings::Scope scope,
+                  const QString& organization,
+                  const QString& application = QString (),
+                  QObject *parent = nullptr)
+      : QSettings (format, scope, organization, application, parent)
+    { }
+
+    // No copying!
+
+    gui_settings (const gui_settings&) = delete;
+
+    gui_settings& operator = (const gui_settings&) = delete;
+
+    ~gui_settings (void) = default;
+  };
+}
+
+#endif
+
--- a/libgui/src/history-dock-widget.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/history-dock-widget.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -89,7 +89,7 @@
 
   void history_dock_widget::save_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       return;
@@ -315,7 +315,7 @@
     widget ()->setLayout (hist_layout);
 
     // Init state of the filter
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     m_filter_shown
       = settings->value ("history_dock_widget/filter_shown",true).toBool ();
@@ -344,7 +344,7 @@
     m_history_list_view->setTextElideMode (Qt::ElideRight);
   }
 
-  void history_dock_widget::notice_settings (const QSettings *settings)
+  void history_dock_widget::notice_settings (const gui_settings *settings)
   {
     QFont font = QFont ();
 
--- a/libgui/src/history-dock-widget.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/history-dock-widget.h	Fri Nov 01 02:17:13 2019 -0400
@@ -64,7 +64,7 @@
     void append_history (const QString& hist_entry);
     void clear_history (void);
     void save_settings (void);
-    void notice_settings (const QSettings *);
+    void notice_settings (const gui_settings *);
 
   private slots:
 
--- a/libgui/src/m-editor/file-editor-interface.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/file-editor-interface.h	Fri Nov 01 02:17:13 2019 -0400
@@ -24,9 +24,9 @@
 #define octave_file_editor_interface_h 1
 
 #include <QMenu>
-#include <QSettings>
 #include <QToolBar>
 
+#include "gui-settings.h"
 #include "octave-dock-widget.h"
 
 namespace octave
@@ -68,7 +68,7 @@
 
     virtual void empty_script (bool, bool) = 0;
 
-    virtual void restore_session (QSettings *) = 0;
+    virtual void restore_session (gui_settings *) = 0;
 
     virtual void enable_menu_shortcuts (bool enable) = 0;
 
--- a/libgui/src/m-editor/file-editor-tab.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/file-editor-tab.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -254,7 +254,7 @@
     connect (this, SIGNAL (do_save_file_signal (const QString&, bool, bool)),
              this, SLOT (do_save_file (const QString&, bool, bool)));
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (settings)
       notice_settings (settings, true);
 
@@ -696,7 +696,7 @@
   {
     QsciLexer *lexer = m_edit_area->lexer ();
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (m_lexer_apis)
       {
@@ -1656,7 +1656,7 @@
         if (input_str)
           {
             bool ok;
-            QSettings *settings = resource_manager::get_settings ();
+            gui_settings *settings = resource_manager::get_settings ();
 
             used_comment_str
               = QInputDialog::getText (this, tr ("Comment selected text"),
@@ -2097,7 +2097,7 @@
 #else
     int os_eol_mode = QsciScintilla::EolUnix;
 #endif
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     QsciScintilla::EolMode eol_mode
       = static_cast<QsciScintilla::EolMode> (settings->value ("editor/default_eol_mode",os_eol_mode).toInt ());
 
@@ -2180,7 +2180,7 @@
   {
     update_window_title (false); // window title (no modification)
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     // set the eol mode from the settings or depending on the OS if the entry is
     // missing in the settings
@@ -2746,9 +2746,10 @@
       }
   }
 
-  void file_editor_tab::notice_settings (const QSettings *settings, bool init)
+  void file_editor_tab::notice_settings (const gui_settings *settings, bool init)
   {
-    // QSettings pointer is checked before emitting.
+    if (! settings)
+      return;
 
     if (! init)
       update_lexer_settings ();
--- a/libgui/src/m-editor/file-editor-tab.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/file-editor-tab.h	Fri Nov 01 02:17:13 2019 -0400
@@ -29,7 +29,6 @@
 #include <QFileInfo>
 #include <QFileSystemWatcher>
 #include <QLabel>
-#include <QSettings>
 #include <QStatusBar>
 #include <QWidget>
 #include <Qsci/qsciapis.h>
@@ -37,6 +36,7 @@
 #include "find-dialog.h"
 // Only needed for typedef of "QIntList", which may be typedefed
 // elsewhere.  Could use common location.
+#include "gui-settings.h"
 #include "marker.h"
 #include "octave-qscintilla.h"
 #include "qt-interpreter-events.h"
@@ -136,7 +136,7 @@
                                 Qt::KeyboardModifiers state);
 
     // Tells the editor tab to react on changed settings.
-    void notice_settings (const QSettings *settings, bool init = false);
+    void notice_settings (const gui_settings *settings, bool init = false);
 
     // Change to a different editor tab by identifier tag.
     void change_editor_state (const QWidget *ID);
--- a/libgui/src/m-editor/file-editor.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/file-editor.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -157,7 +157,7 @@
 
   void file_editor::handle_enter_debug_mode (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     QString sc_run = settings->value ("shortcuts/editor_run:run_file").toString ();
     QString sc_cont = settings->value ("shortcuts/main_debug:continue").toString ();
 
@@ -219,7 +219,7 @@
   // 2. When the editor becomes visible when octave is running
   void file_editor::empty_script (bool startup, bool visible)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (settings->value ("useCustomFileEditor",false).toBool ())
       return;  // do not open an empty script in the external editor
 
@@ -265,7 +265,7 @@
     request_new_file ("");
   }
 
-  void file_editor::restore_session (QSettings *settings)
+  void file_editor::restore_session (gui_settings *settings)
   {
     //restore previous session
     if (! settings->value ("editor/restoreSession", true).toBool ())
@@ -426,7 +426,7 @@
     // Here, the application or the editor will be closed -> store the session
 
     // Save open files for restoring in next session; this only is possible
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     // save filenames (even if last session will not be restored next time)
     // together with encoding and the tab index
@@ -1127,7 +1127,7 @@
     m_tmp_closed_files.clear ();
   }
 
-  void file_editor::notice_settings (const QSettings *settings)
+  void file_editor::notice_settings (const gui_settings *settings)
   {
     int size_idx = settings->value (global_icon_size.key,
                                     global_icon_size.def).toInt ();
@@ -1321,7 +1321,7 @@
     if (m_closed && visible)
       {
         m_closed = false;
-        QSettings *settings = resource_manager::get_settings ();
+        gui_settings *settings = resource_manager::get_settings ();
         restore_session (settings);
       }
 
@@ -1383,7 +1383,7 @@
     if (call_custom_editor (openFileName, line))
       return;   // custom editor called
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     bool show_dbg_file
       = settings->value (ed_show_dbg_file.key, ed_show_dbg_file.def).toBool ();
 
@@ -1660,7 +1660,7 @@
   // handler for the close event
   void file_editor::closeEvent (QCloseEvent *e)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (settings->value ("editor/hiding_closes_files",false).toBool ())
       {
         if (check_closing ())
@@ -1734,7 +1734,7 @@
     m_tab_widget = new file_editor_tab_widget (editor_widget);
 
     // the mru-list and an empty array of actions
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     m_mru_files = settings->value ("editor/mru_file_list").toStringList ();
     m_mru_files_encodings = settings->value ("editor/mru_file_encodings")
                             .toStringList ();
@@ -2329,8 +2329,8 @@
              this, SLOT (set_focus (QWidget*)));
 
     // Signals from the file_editor non-trivial operations
-    connect (this, SIGNAL (fetab_settings_changed (const QSettings *)),
-             f, SLOT (notice_settings (const QSettings *)));
+    connect (this, SIGNAL (fetab_settings_changed (const gui_settings *)),
+             f, SLOT (notice_settings (const gui_settings *)));
 
     connect (this, SIGNAL (fetab_change_request (const QWidget*)),
              f, SLOT (change_editor_state (const QWidget*)));
@@ -2520,7 +2520,7 @@
       }
 
     // save actual mru-list in settings
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     settings->setValue ("editor/mru_file_list", m_mru_files);
     settings->setValue ("editor/mru_file_encodings", m_mru_files_encodings);
@@ -2530,7 +2530,7 @@
   bool file_editor::call_custom_editor (const QString& file_name, int line)
   {
     // Check if the user wants to use a custom file editor.
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings->value ("useCustomFileEditor",false).toBool ())
       {
@@ -2549,7 +2549,7 @@
 
   void file_editor::toggle_preference (const QString& preference, bool def)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     bool old = settings->value (preference,def).toBool ();
     settings->setValue (preference,! old);
     notice_settings (settings);
--- a/libgui/src/m-editor/file-editor.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/file-editor.h	Fri Nov 01 02:17:13 2019 -0400
@@ -117,12 +117,12 @@
 
     void check_actions (void);
     void empty_script (bool startup, bool visible);
-    void restore_session (QSettings *settings);
+    void restore_session (gui_settings *settings);
 
   signals:
 
     void fetab_toplevel_changed (bool);
-    void fetab_settings_changed (const QSettings *settings);
+    void fetab_settings_changed (const gui_settings *settings);
     void fetab_change_request (const QWidget *ID);
     void fetab_file_name_query (const QWidget *ID);
     // Save is a ping-pong type of communication
@@ -272,7 +272,7 @@
     void handle_file_renamed (bool load_new = true);
 
     // Tells the editor to react on changed settings.
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
 
     void set_shortcuts (void);
 
--- a/libgui/src/m-editor/octave-qscintilla.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/octave-qscintilla.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -397,7 +397,7 @@
       case SCLEX_MATLAB:
 #endif
         {
-          QSettings *settings = resource_manager::get_settings ();
+          gui_settings *settings = resource_manager::get_settings ();
           int comment_string;
 
           if (comment)
@@ -862,7 +862,7 @@
     tmp_file->close ();
 
     // Disable opening a file at a breakpoint in case keyboard () is used
-    QSettings* settings = resource_manager::get_settings ();
+    gui_settings* settings = resource_manager::get_settings ();
     bool show_dbg_file = settings->value (ed_show_dbg_file.key,
                                        ed_show_dbg_file.def).toBool ();
     settings->setValue (ed_show_dbg_file.key, false);
@@ -903,7 +903,7 @@
                                                  QTemporaryFile* tmp_hist,
                                                  QTemporaryFile* tmp_script)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     settings->setValue (ed_show_dbg_file.key, show_dbg_file);
     resource_manager::remove_tmp_file (tmp_file);
     resource_manager::remove_tmp_file (tmp_hist);
--- a/libgui/src/m-editor/octave-qscintilla.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/m-editor/octave-qscintilla.h	Fri Nov 01 02:17:13 2019 -0400
@@ -29,9 +29,9 @@
 #include <QKeyEvent>
 #include <QLabel>
 #include <QMenu>
-#include <QSettings>
 #include <Qsci/qsciscintilla.h>
 
+#include "gui-settings.h"
 #include "qt-interpreter-events.h"
 
 namespace octave
--- a/libgui/src/main-window.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/main-window.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -41,7 +41,6 @@
 #include <QMenu>
 #include <QMenuBar>
 #include <QMessageBox>
-#include <QSettings>
 #include <QStyle>
 #include <QStyleFactory>
 #include <QStyleFactory>
@@ -58,6 +57,7 @@
 #include "gui-preferences-ed.h"
 #include "gui-preferences-global.h"
 #include "gui-preferences-mw.h"
+#include "gui-settings.h"
 #include "interpreter-qobject.h"
 #include "main-window.h"
 #include "news-reader.h"
@@ -175,7 +175,7 @@
 
     m_default_style = qapp->style ()->objectName ();
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     bool connect_to_web = true;
     QDateTime last_checked;
@@ -257,7 +257,7 @@
   {
     bool closenow = true;
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings->value ("prompt_to_exit", false).toBool ())
       {
@@ -345,7 +345,7 @@
 
   void main_window::request_reload_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings)
       emit settings_changed (settings);
@@ -659,7 +659,7 @@
 
   void main_window::load_and_display_community_news (int serial)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     bool connect_to_web
       = (settings
@@ -798,9 +798,10 @@
                         QString::fromStdString (message));
   }
 
-  void main_window::notice_settings (const QSettings *settings)
+  void main_window::notice_settings (const gui_settings *settings)
   {
-    // QSettings pointer is checked before emitting.
+    if (! settings)
+      return;
 
     // Get desired style from preferences or take the default one if
     // the desired one is not found
@@ -929,7 +930,7 @@
   {
     // Find files dialog is constructed dynamically, not at time of main_window
     // construction.  Connecting it to qApp aboutToQuit signal would have
-    // caused it to run after QSettings deleted.
+    // caused it to run after gui_settings is deleted.
     if (m_find_files_dlg)
       m_find_files_dlg->save_settings ();
 
@@ -1221,7 +1222,7 @@
     // Open file isn't a file_editor_tab or editor function since the file
     // might be opened in an external editor. Hence, functionality is here.
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     bool is_internal = m_editor_window
                        && ! settings->value ("useCustomFileEditor",false).toBool ();
 
@@ -1264,7 +1265,7 @@
     // editor window or the main window. The latter is chosen, if a custom
     // editor is used or qscintilla is not available
     QWidget *p = m_editor_window;
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (! p || settings->value ("useCustomFileEditor",false).toBool ())
       p = this;
     QString new_name = QInputDialog::getText (p, tr ("New Function"),
@@ -1423,11 +1424,11 @@
 
   void main_window::read_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       {
-        qDebug ("Error: QSettings pointer from resource manager is NULL.");
+        qDebug ("Error: gui_settings pointer from resource manager is NULL.");
         return;
       }
 
@@ -1448,7 +1449,7 @@
     emit init_terminal_size_signal ();
   }
 
-  void main_window::set_window_layout (QSettings *settings)
+  void main_window::set_window_layout (gui_settings *settings)
   {
     // Restore main window state and geometry from settings file or, in case
     // of an error from the default layout
@@ -1523,10 +1524,10 @@
 
   void main_window::write_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (! settings)
       {
-        qDebug ("Error: QSettings pointer from resource manager is NULL.");
+        qDebug ("Error: gui_settings pointer from resource manager is NULL.");
         return;
       }
 
@@ -1618,7 +1619,7 @@
   void main_window::handle_octave_ready (void)
   {
     // actions after the startup files are executed
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QDir startup_dir = QDir ();    // current octave dir after startup
 
@@ -1833,7 +1834,7 @@
   void main_window::restore_create_file_setting (void)
   {
     // restore the new files creation setting
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     settings->setValue ("editor/create_new_file",false);
     disconnect (m_editor_window, SIGNAL (file_loaded_signal (void)),
                 this, SLOT (restore_create_file_setting (void)));
@@ -1966,7 +1967,7 @@
 
     construct_tool_bar ();
 
-    // Order is important.  Deleting QSettings must be last.
+    // Order is important.  Deleting gui_settings must be last.
     connect (qApp, SIGNAL (aboutToQuit (void)),
              m_command_window, SLOT (save_settings (void)));
 
@@ -1994,15 +1995,15 @@
     connect (qApp, SIGNAL (aboutToQuit (void)),
              shortcut_manager::instance, SLOT (cleanup_instance (void)));
 
-    // QSettings are saved upon deletion (i.e., cleanup_instance)
+    // gui_settings are saved upon deletion (i.e., cleanup_instance)
     connect (qApp, SIGNAL (aboutToQuit (void)),
              resource_manager::instance, SLOT (cleanup_instance (void)));
 
     connect (qApp, SIGNAL (focusChanged (QWidget*, QWidget*)),
              this, SLOT (focus_changed (QWidget*, QWidget*)));
 
-    connect (this, SIGNAL (settings_changed (const QSettings *)),
-             this, SLOT (notice_settings (const QSettings *)));
+    connect (this, SIGNAL (settings_changed (const gui_settings *)),
+             this, SLOT (notice_settings (const gui_settings *)));
 
     connect (this, SIGNAL (editor_focus_changed (bool)),
              this, SLOT (disable_menu_shortcuts (bool)));
@@ -2129,8 +2130,8 @@
 
     qt_interpreter_events *qt_link = interp_qobj->qt_link ();
 
-    connect (qt_link, SIGNAL (settings_changed (const QSettings *)),
-             this, SLOT (notice_settings (const QSettings *)));
+    connect (qt_link, SIGNAL (settings_changed (const gui_settings *)),
+             this, SLOT (notice_settings (const gui_settings *)));
 
     connect (qt_link, SIGNAL (apply_new_settings (void)),
              this, SLOT (request_reload_settings (void)));
@@ -2699,7 +2700,7 @@
 
   void main_window::focus_console_after_command (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     if (settings->value ("terminal/focus_after_command",false).toBool ())
       focus_command_window ();
   }
--- a/libgui/src/main-window.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/main-window.h	Fri Nov 01 02:17:13 2019 -0400
@@ -94,7 +94,7 @@
     void active_dock_changed (octave_dock_widget *, octave_dock_widget *);
     void editor_focus_changed (bool);
 
-    void settings_changed (const QSettings *);
+    void settings_changed (const gui_settings *);
     void init_terminal_size_signal (void);
     void new_file_signal (const QString&);
     void open_file_signal (const QString&);
@@ -152,7 +152,7 @@
                                           = QString ());
 
     void show_about_octave (void);
-    void notice_settings (const QSettings *settings);
+    void notice_settings (const gui_settings *settings);
     void prepare_to_exit (void);
     void reset_windows (void);
 
@@ -190,7 +190,7 @@
 
     void read_settings (void);
     void init_terminal_size (void);
-    void set_window_layout (QSettings *settings);
+    void set_window_layout (gui_settings *settings);
     void write_settings (void);
     void connect_visibility_changed (void);
 
--- a/libgui/src/module.mk	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/module.mk	Fri Nov 01 02:17:13 2019 -0400
@@ -137,6 +137,7 @@
   %reldir%/moc-documentation.cc \
   %reldir%/moc-dw-main-window.cc \
   %reldir%/moc-files-dock-widget.cc \
+  %reldir%/moc-gui-settings.cc \
   %reldir%/moc-history-dock-widget.cc \
   %reldir%/moc-interpreter-qobject.cc \
   %reldir%/moc-main-window.cc \
@@ -197,6 +198,7 @@
   %reldir%/gui-preferences-ve.h \
   %reldir%/gui-preferences-ws.h \
   %reldir%/gui-preferences.h \
+  %reldir%/gui-settings.h \
   %reldir%/external-editor-interface.h \
   %reldir%/files-dock-widget.h \
   %reldir%/history-dock-widget.h \
@@ -237,6 +239,7 @@
   %reldir%/dw-main-window.cc \
   %reldir%/external-editor-interface.cc \
   %reldir%/files-dock-widget.cc \
+  %reldir%/gui-settings.cc \
   %reldir%/history-dock-widget.cc \
   %reldir%/interpreter-qobject.cc \
   %reldir%/m-editor/file-editor-tab.cc \
--- a/libgui/src/news-reader.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/news-reader.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -65,7 +65,7 @@
           {
             if (m_serial >= 0)
               {
-                QSettings *settings = resource_manager::get_settings ();
+                gui_settings *settings = resource_manager::get_settings ();
 
                 if (settings)
                   {
--- a/libgui/src/octave-dock-widget.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/octave-dock-widget.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -30,13 +30,13 @@
 #include <QDesktopWidget>
 #include <QHBoxLayout>
 #include <QLabel>
-#include <QSettings>
 #include <QStyle>
 #include <QToolBar>
 #include <QMenuBar>
 
 #include "gui-preferences-global.h"
 #include "gui-preferences-mw.h"
+#include "gui-settings.h"
 #include "octave-dock-widget.h"
 #include "resource-manager.h"
 
@@ -190,8 +190,8 @@
     connect (this, SIGNAL (visibilityChanged (bool)),
              this, SLOT (handle_visibility_changed (bool)));
 
-    connect (p, SIGNAL (settings_changed (const QSettings*)),
-             this, SLOT (handle_settings (const QSettings*)));
+    connect (p, SIGNAL (settings_changed (const gui_settings *)),
+             this, SLOT (handle_settings (const gui_settings *)));
 
     connect (p, SIGNAL (active_dock_changed (octave_dock_widget*,
                                              octave_dock_widget*)),
@@ -325,7 +325,7 @@
     bool vis = isVisible ();
 
     // Since floating widget has no parent, we have to read it
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     settings->setValue (mw_state.key, m_parent->saveState ());
     // Stay window, otherwise will bounce back to window by default because
@@ -417,7 +417,7 @@
   }
 
   void
-  octave_dock_widget::handle_settings (const QSettings *settings)
+  octave_dock_widget::handle_settings (const gui_settings *settings)
   {
     m_custom_style
       = settings->value ("DockWidgets/widget_title_custom_style",false).toBool ();
@@ -516,7 +516,7 @@
   {
     // save state of this dock-widget
     QString name = objectName ();
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       return;
--- a/libgui/src/octave-dock-widget.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/octave-dock-widget.h	Fri Nov 01 02:17:13 2019 -0400
@@ -27,9 +27,9 @@
 #include <QIcon>
 #include <QMainWindow>
 #include <QMouseEvent>
-#include <QSettings>
 #include <QToolButton>
 
+#include "gui-settings.h"
 #include "qt-interpreter-events.h"
 
 namespace octave
@@ -117,9 +117,9 @@
 
     virtual void handle_visibility (bool visible);
 
-    virtual void notice_settings (const QSettings*) { }
+    virtual void notice_settings (const gui_settings *) { }
 
-    void handle_settings (const QSettings*);
+    void handle_settings (const gui_settings *);
 
     void handle_active_dock_changed (octave_dock_widget*, octave_dock_widget*);
 
--- a/libgui/src/qt-interpreter-events.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/qt-interpreter-events.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -274,7 +274,7 @@
 
   bool qt_interpreter_events::prompt_new_edit_file (const std::string& file)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings || settings->value ("editor/create_new_file",false).toBool ())
       return true;
@@ -577,7 +577,7 @@
   {
     QMutexLocker autolock (&m_mutex);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QString read_value = settings->value (key).toString ();
 
--- a/libgui/src/qt-interpreter-events.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/qt-interpreter-events.h	Fri Nov 01 02:17:13 2019 -0400
@@ -31,13 +31,13 @@
 #include <QList>
 #include <QMutex>
 #include <QObject>
-#include <QSettings>
 #include <QString>
 #include <QWaitCondition>
 
-#include "event-manager.h"
+#include "dialog.h"
+#include "gui-settings.h"
 
-#include "dialog.h"
+#include "event-manager.h"
 
 // Defined for purposes of sending QList<int> as part of signal.
 typedef QList<int> QIntList;
@@ -243,7 +243,7 @@
 
     void get_named_icon_signal (const QString& name);
 
-    void settings_changed (const QSettings *);
+    void settings_changed (const gui_settings *);
 
     void apply_new_settings (void);
 
--- a/libgui/src/resource-manager.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/resource-manager.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -71,10 +71,10 @@
     : m_settings_directory (), m_settings_file (), m_settings (nullptr),
       m_default_settings (nullptr), m_temporary_files ()
   {
-    // Let QSettings decide where to put the ini file with gui preferences
+    // Let gui_settings decide where to put the ini file with gui preferences
     m_default_settings
-              = new QSettings(QSettings::IniFormat, QSettings::UserScope,
-                              "octave", "octave-gui");
+      = new gui_settings (QSettings::IniFormat, QSettings::UserScope,
+                          "octave", "octave-gui");
 
     m_settings_file = m_default_settings->fileName ();
 
@@ -107,9 +107,9 @@
 
         if (ofile.exists ())
           {
-            // Old settings file exists, create a QSettings object related
+            // Old settings file exists, create a gui_settings object related
             // to it and copy all available keys to the new settings
-            QSettings old_settings (old_settings_file, QSettings::IniFormat);
+            gui_settings old_settings (old_settings_file, QSettings::IniFormat);
 
             QStringList keys = old_settings.allKeys ();
             for (int i = 0; i < keys.count(); i++)
@@ -150,7 +150,7 @@
 
     QString language = "SYSTEM";  // take system language per default
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings)
       {
@@ -215,12 +215,12 @@
     return retval;
   }
 
-  QSettings * resource_manager::do_get_settings (void) const
+  gui_settings * resource_manager::do_get_settings (void) const
   {
     return m_settings;
   }
 
-  QSettings * resource_manager::do_get_default_settings (void) const
+  gui_settings * resource_manager::do_get_default_settings (void) const
   {
     return m_default_settings;
   }
@@ -321,7 +321,7 @@
   void resource_manager::do_set_settings (const QString& file)
   {
     delete m_settings;
-    m_settings = new QSettings (file, QSettings::IniFormat);
+    m_settings = new gui_settings (file, QSettings::IniFormat);
 
     if (! (QFile::exists (m_settings->fileName ())
            && m_settings->isWritable ()
--- a/libgui/src/resource-manager.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/resource-manager.h	Fri Nov 01 02:17:13 2019 -0400
@@ -28,10 +28,11 @@
 #include <QIcon>
 #include <QMap>
 #include <QPointer>
-#include <QSettings>
 #include <QTranslator>
 #include <QTemporaryFile>
 
+#include "gui-settings.h"
+
 namespace octave
 {
   class resource_manager : public QObject
@@ -52,7 +53,7 @@
 
     ~resource_manager ();
 
-    static QSettings * get_settings (void)
+    static gui_settings * get_settings (void)
     {
       return instance_ok () ? instance->do_get_settings () : nullptr;
     }
@@ -65,7 +66,7 @@
       return QIcon ();
     }
 
-    static QSettings * get_default_settings (void)
+    static gui_settings * get_default_settings (void)
     {
       return instance_ok () ? instance->do_get_default_settings () : nullptr;
     }
@@ -153,9 +154,9 @@
 
     static bool instance_ok (void);
 
-    QSettings * do_get_settings (void) const;
+    gui_settings * do_get_settings (void) const;
 
-    QSettings * do_get_default_settings (void) const;
+    gui_settings * do_get_default_settings (void) const;
 
     QString do_get_settings_directory (void);
 
@@ -187,9 +188,9 @@
 
     QString m_settings_file;
 
-    QSettings *m_settings;
+    gui_settings *m_settings;
 
-    QSettings *m_default_settings;
+    gui_settings *m_default_settings;
 
     QList<QTemporaryFile *> m_temporary_files;
   };
--- a/libgui/src/set-path-dialog.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/set-path-dialog.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -163,7 +163,7 @@
 
     setLayout (main_layout);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     restoreGeometry (
             settings->value(pd_geometry.key).toByteArray());
   }
@@ -299,7 +299,7 @@
 
   void set_path_dialog::save_settings ()
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     settings->setValue (pd_geometry.key, saveGeometry ());
   }
 
--- a/libgui/src/settings-dialog.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/settings-dialog.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -93,7 +93,7 @@
   {
     setupUi (this);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       {
@@ -527,7 +527,7 @@
   {
     if (tab.isEmpty ())
       {
-        QSettings *settings = resource_manager::get_settings ();
+        gui_settings *settings = resource_manager::get_settings ();
         if (settings)
           tabWidget->setCurrentIndex (settings->value ("settings/last_tab", 0).toInt ());
       }
@@ -617,7 +617,7 @@
   }
 
   void settings_dialog::read_lexer_settings (QsciLexer *lexer,
-                                             QSettings *settings)
+                                             gui_settings *settings)
   {
 #if defined (HAVE_QSCINTILLA)
 
@@ -719,7 +719,7 @@
   }
 
   void settings_dialog::write_lexer_settings (QsciLexer *lexer,
-                                              QSettings *settings)
+                                              gui_settings *settings)
   {
 #if defined (HAVE_QSCINTILLA)
 
@@ -815,7 +815,7 @@
 
   void settings_dialog::write_changed_settings (bool closing)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     // the icon set
     QString widget_icon_set = "NONE";
@@ -1039,7 +1039,7 @@
     settings->sync ();
   }
 
-  void settings_dialog::read_workspace_colors (QSettings *settings)
+  void settings_dialog::read_workspace_colors (gui_settings *settings)
   {
     // Construct the grid with all color related settings
     QList<QColor> default_colors =
@@ -1100,7 +1100,7 @@
     workspace_colors_box->setLayout (style_grid);
   }
 
-  void settings_dialog::write_workspace_colors (QSettings *settings)
+  void settings_dialog::write_workspace_colors (gui_settings *settings)
   {
     settings->setValue (ws_enable_colors.key, m_ws_enable_colors->isChecked ());
     settings->setValue (ws_hide_tool_tips.key, m_ws_hide_tool_tips->isChecked ());
@@ -1117,7 +1117,7 @@
     settings->sync ();
   }
 
-  void settings_dialog::read_terminal_colors (QSettings *settings)
+  void settings_dialog::read_terminal_colors (gui_settings *settings)
   {
     QGridLayout *style_grid = new QGridLayout ();
     QVector<QLabel*> description (cs_colors_count);
@@ -1148,7 +1148,7 @@
     terminal_colors_box->setLayout (style_grid);
   }
 
-  void settings_dialog::write_terminal_colors (QSettings *settings)
+  void settings_dialog::write_terminal_colors (gui_settings *settings)
   {
     color_picker *color;
 
@@ -1162,7 +1162,7 @@
     settings->sync ();
   }
 
-  void settings_dialog::read_varedit_colors (QSettings *settings)
+  void settings_dialog::read_varedit_colors (gui_settings *settings)
   {
     QList<QColor> default_colors = variable_editor::default_colors ();
     QStringList class_names = variable_editor::color_names ();
@@ -1198,7 +1198,7 @@
     varedit_colors_box->setLayout (style_grid);
   }
 
-  void settings_dialog::write_varedit_colors (QSettings *settings)
+  void settings_dialog::write_varedit_colors (gui_settings *settings)
   {
     QString class_chars = resource_manager::varedit_color_chars ();
     color_picker *color;
--- a/libgui/src/settings-dialog.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/settings-dialog.h	Fri Nov 01 02:17:13 2019 -0400
@@ -27,10 +27,10 @@
 #include <QDialog>
 #include <QLineEdit>
 #include <QRadioButton>
-#include <QSettings>
 
 #include "color-picker.h"
 #include "gui-preferences-ed.h"
+#include "gui-settings.h"
 #include "ui-settings-dialog.h"
 
 class QsciLexer;
@@ -71,19 +71,19 @@
 
   private:
 
-    void read_lexer_settings (QsciLexer *lexer, QSettings *settings);
-    void write_lexer_settings (QsciLexer *lexer, QSettings *settings);
+    void read_lexer_settings (QsciLexer *lexer, gui_settings *settings);
+    void write_lexer_settings (QsciLexer *lexer, gui_settings *settings);
 
     void write_changed_settings (bool closing);
 
-    void read_workspace_colors (QSettings *settings);
-    void write_workspace_colors (QSettings *settings);
+    void read_workspace_colors (gui_settings *settings);
+    void write_workspace_colors (gui_settings *settings);
 
-    void read_terminal_colors (QSettings *settings);
-    void write_terminal_colors (QSettings *settings);
+    void read_terminal_colors (gui_settings *settings);
+    void write_terminal_colors (gui_settings *settings);
 
-    void read_varedit_colors (QSettings *settings);
-    void write_varedit_colors (QSettings *settings);
+    void read_varedit_colors (gui_settings *settings);
+    void write_varedit_colors (gui_settings *settings);
 
     color_picker *m_widget_title_bg_color;
     color_picker *m_widget_title_bg_color_active;
--- a/libgui/src/shortcut-manager.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/shortcut-manager.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -491,7 +491,7 @@
   }
 
   // write one or all actual shortcut set(s) into a settings file
-  void shortcut_manager::do_write_shortcuts (QSettings *settings,
+  void shortcut_manager::do_write_shortcuts (gui_settings *settings,
                                              bool closing)
   {
     bool sc_ctrld = false;
@@ -706,7 +706,7 @@
         if (file.isEmpty ())
           return false;
 
-        QSettings osc_settings (file, QSettings::IniFormat);
+        gui_settings osc_settings (file, QSettings::IniFormat);
 
         if (osc_settings.status () !=  QSettings::NoError)
           {
@@ -822,7 +822,7 @@
 
   // import a shortcut set from a given settings file or reset to
   // the defaults (settings = 0) and refresh the tree view
-  void shortcut_manager::import_shortcuts (QSettings *settings)
+  void shortcut_manager::import_shortcuts (gui_settings *settings)
   {
     for (int i = 0; i < m_sc.count (); i++)
       {
--- a/libgui/src/shortcut-manager.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/shortcut-manager.h	Fri Nov 01 02:17:13 2019 -0400
@@ -26,11 +26,12 @@
 #include <QKeyEvent>
 #include <QLabel>
 #include <QLineEdit>
-#include <QSettings>
 #include <QShortcut>
 #include <QTreeWidget>
 #include <QWidget>
 
+#include "gui-settings.h"
+
 namespace octave
 {
   class enter_shortcut : public QLineEdit
@@ -86,7 +87,7 @@
         instance->do_init_data ();
     }
 
-    static void write_shortcuts (QSettings *settings, bool closing)
+    static void write_shortcuts (gui_settings *settings, bool closing)
     {
       if (instance_ok ())
         instance->do_write_shortcuts (settings, closing);
@@ -134,13 +135,13 @@
 
     void init (const QString&, const QString&, const QKeySequence&);
     void do_init_data ();
-    void do_write_shortcuts (QSettings *settings, bool closing);
+    void do_write_shortcuts (gui_settings *settings, bool closing);
     void do_set_shortcut (QAction *action, const QString& key);
     void do_shortcut (QShortcut *sc, const QString& key);
     void do_fill_treewidget (QTreeWidget *tree_view);
     bool do_import_export (int action);
     void shortcut_dialog (int);
-    void import_shortcuts (QSettings *settings);
+    void import_shortcuts (gui_settings *settings);
     bool overwrite_all_shortcuts (void);
 
     class shortcut_t
@@ -199,7 +200,7 @@
     QLabel *m_label_default;
     int m_handled_index;
 
-    QSettings *m_settings;
+    gui_settings *m_settings;
   };
 }
 
--- a/libgui/src/terminal-dock-widget.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/terminal-dock-widget.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -61,7 +61,7 @@
 
     // Chose a reasonable size at startup in order to avoid truncated
     // startup messages
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QFont font = QFont ();
     font.setStyleHint (QFont::TypeWriter);
--- a/libgui/src/variable-editor.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/variable-editor.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -1154,7 +1154,7 @@
   {
     if (m_stylesheet.isEmpty ())
       {
-        QSettings *settings = resource_manager::get_settings ();
+        gui_settings *settings = resource_manager::get_settings ();
         notice_settings (settings);
       }
 
@@ -1358,7 +1358,7 @@
   }
 
   void
-  variable_editor::notice_settings (const QSettings *settings)
+  variable_editor::notice_settings (const gui_settings *settings)
   {
     m_main->notice_settings (settings); // update settings in parent main win
 
--- a/libgui/src/variable-editor.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/variable-editor.h	Fri Nov 01 02:17:13 2019 -0400
@@ -26,11 +26,11 @@
 #define octave_variable_editor_h 1
 
 #include <QHeaderView>
-#include <QSettings>
 #include <QStackedWidget>
 #include <QTableView>
 
 #include "dw-main-window.h"
+#include "gui-settings.h"
 #include "octave-dock-widget.h"
 #include "tab-bar.h"
 
@@ -326,7 +326,7 @@
 
     void callUpdate (const QModelIndex&, const QModelIndex&);
 
-    void notice_settings (const QSettings *);
+    void notice_settings (const gui_settings *);
 
     void edit_variable (const QString& name, const octave_value& val);
 
--- a/libgui/src/welcome-wizard.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/welcome-wizard.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -141,7 +141,7 @@
 
     resource_manager::reload_settings ();
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings)
       {
--- a/libgui/src/workspace-model.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/workspace-model.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -27,10 +27,10 @@
 
 #include <iostream>
 
-#include <QSettings>
 #include <QTreeWidget>
 
 #include "gui-preferences-ws.h"
+#include "gui-settings.h"
 #include "resource-manager.h"
 #include "workspace-model.h"
 
@@ -233,7 +233,7 @@
   }
 
   void
-  workspace_model::notice_settings (const QSettings *settings)
+  workspace_model::notice_settings (const gui_settings *settings)
   {
     QList<QColor> default_colors =
       resource_manager::storage_class_default_colors ();
--- a/libgui/src/workspace-model.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/workspace-model.h	Fri Nov 01 02:17:13 2019 -0400
@@ -29,10 +29,11 @@
 #include <QColor>
 #include <QList>
 #include <QSemaphore>
-#include <QSettings>
 #include <QStringList>
 #include <QVector>
 
+#include "gui-settings.h"
+
 #include "syminfo.h"
 
 // Defined for purposes of sending QList<int> as part of signal.
@@ -87,7 +88,7 @@
 
     void clear_workspace (void);
 
-    void notice_settings (const QSettings *);
+    void notice_settings (const gui_settings *);
 
   private:
 
--- a/libgui/src/workspace-view.cc	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/workspace-view.cc	Fri Nov 01 02:17:13 2019 -0400
@@ -96,7 +96,7 @@
     ws_layout->addWidget (m_view);
     ws_layout->setSpacing (0);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (settings)
       {
@@ -177,7 +177,7 @@
     m_view->setModel (&m_filter_model);
 
     // set the sorting after a model was set, it would be ignored otherwise
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
     m_view->sortByColumn (settings->value ("workspaceview/sort_by_column",0).toInt (),
                           static_cast<Qt::SortOrder> (settings->value ("workspaceview/sort_order", Qt::AscendingOrder).toUInt ()));
 
@@ -185,7 +185,7 @@
   }
 
   void
-  workspace_view::notice_settings (const QSettings *settings)
+  workspace_view::notice_settings (const gui_settings *settings)
   {
     int i;
 
@@ -230,7 +230,7 @@
   void
   workspace_view::save_settings (void)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     if (! settings)
       return;
@@ -295,7 +295,7 @@
     QMenu menu (this);
     QSignalMapper sig_mapper (this);
 
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     for (int i = 0; i < m_columns_shown.size (); i++)
       {
@@ -315,7 +315,7 @@
   void
   workspace_view::toggle_header (int col)
   {
-    QSettings *settings = resource_manager::get_settings ();
+    gui_settings *settings = resource_manager::get_settings ();
 
     QString key = m_columns_shown_keys.at (col);
     bool shown = settings->value (key,true).toBool ();
--- a/libgui/src/workspace-view.h	Fri Nov 01 12:12:10 2019 -0400
+++ b/libgui/src/workspace-view.h	Fri Nov 01 02:17:13 2019 -0400
@@ -67,7 +67,7 @@
 
     void setModel (workspace_model *model);
 
-    void notice_settings (const QSettings *);
+    void notice_settings (const gui_settings *);
 
     void save_settings (void);