changeset 31621:0645ea65ca6b

handle icons and themes in gui_settings class, not resource_manager * resource-manager.h, resource-manager.cc (resource_manager::config_icon_theme, resource_manager::icon): Move funtcions to gui-settings.h and gui-settings.cc. * Canvas.cc, QTerminal.cc, documentation-bookmarks.cc, documentation.cc, dw-main-window.cc, files-dock-widget.cc, find-files-dialog.cc, gui-settings.cc, gui-settings.h, history-dock-widget.cc, file-editor.cc, main-window.cc, octave-dock-widget.cc, octave-qobject.cc, qt-interpreter-events.cc, resource-manager.cc, resource-manager.h, variable-editor.cc: Change all uses.
author John W. Eaton <jwe@octave.org>
date Fri, 02 Dec 2022 18:43:12 -0500
parents 6dfaaf8ecf3b
children c54cfa058df8
files libgui/graphics/Canvas.cc libgui/qterminal/libqterminal/QTerminal.cc libgui/src/documentation-bookmarks.cc libgui/src/documentation.cc libgui/src/dw-main-window.cc libgui/src/files-dock-widget.cc libgui/src/find-files-dialog.cc libgui/src/gui-settings.cc libgui/src/gui-settings.h libgui/src/history-dock-widget.cc libgui/src/m-editor/file-editor.cc libgui/src/main-window.cc libgui/src/octave-dock-widget.cc libgui/src/octave-qobject.cc libgui/src/qt-interpreter-events.cc libgui/src/resource-manager.cc libgui/src/resource-manager.h libgui/src/variable-editor.cc
diffstat 18 files changed, 233 insertions(+), 212 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/Canvas.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/graphics/Canvas.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -43,6 +43,7 @@
 #include "qt-graphics-toolkit.h"
 
 #include "annotation-dialog.h"
+#include "gui-settings.h"
 #include "octave-qobject.h"
 #include "qt-interpreter-events.h"
 
@@ -77,9 +78,9 @@
   QCursor
   Canvas::make_cursor (const QString& name, int hot_x, int hot_y)
   {
-    octave::resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
-    QIcon icon = rmgr.icon (name);
+    QIcon icon = settings.icon (name);
 
     return QCursor (icon.pixmap (22, 22), hot_x, hot_y);
   }
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -276,7 +276,7 @@
 void
 QTerminal::construct (octave::base_qobject& oct_qobj)
 {
-  octave::resource_manager& rmgr = oct_qobj.get_resource_manager ();
+  octave::gui_settings settings;
 
   // context menu
   setContextMenuPolicy (Qt::CustomContextMenu);
@@ -284,11 +284,11 @@
   _contextMenu = new QMenu (this);
 
   _copy_action
-    = _contextMenu->addAction (rmgr.icon ("edit-copy"), tr ("Copy"), this,
+    = _contextMenu->addAction (settings.icon ("edit-copy"), tr ("Copy"), this,
                                SLOT (copyClipboard ()));
 
   _paste_action
-    = _contextMenu->addAction (rmgr.icon ("edit-paste"), tr ("Paste"), this,
+    = _contextMenu->addAction (settings.icon ("edit-paste"), tr ("Paste"), this,
                                SLOT (pasteClipboard ()));
 
   _contextMenu->addSeparator ();
--- a/libgui/src/documentation-bookmarks.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/documentation-bookmarks.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -321,11 +321,11 @@
 
     if (m_ctx_menu_item)
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings settings;
 
         menu.addAction (tr ("&Open"), this, &documentation_bookmarks::open);
         menu.addAction (tr ("&Rename"), this, &documentation_bookmarks::edit);
-        menu.addAction (rmgr.icon ("window-close"), tr ("Remo&ve"),
+        menu.addAction (settings.icon ("window-close"), tr ("Remo&ve"),
                         this, &documentation_bookmarks::remove);
         menu.addSeparator ();
       }
--- a/libgui/src/documentation.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/documentation.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -157,14 +157,16 @@
     QToolButton *forward_button = new QToolButton (find_footer);
     forward_button->setText (tr ("Search forward"));
     forward_button->setToolTip (tr ("Search forward"));
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-    forward_button->setIcon (rmgr.icon ("go-down"));
+
+    gui_settings settings;
+
+    forward_button->setIcon (settings.icon ("go-down"));
     connect (forward_button, &QToolButton::pressed,
              this, [=] () { find (); });
     QToolButton *backward_button = new QToolButton (find_footer);
     backward_button->setText (tr ("Search backward"));
     backward_button->setToolTip (tr ("Search backward"));
-    backward_button->setIcon (rmgr.icon ("go-up"));
+    backward_button->setIcon (settings.icon ("go-up"));
     connect (backward_button, &QToolButton::pressed,
              this, &documentation::find_backward);
     QHBoxLayout *h_box_find_footer = new QHBoxLayout (find_footer);
@@ -349,13 +351,14 @@
   void documentation::construct_tool_bar (void)
   {
     // Home, Previous, Next
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
+
     m_action_go_home
-      = add_action (rmgr.icon ("go-home"), tr ("Go home"), SLOT (home (void)),
+      = add_action (settings.icon ("go-home"), tr ("Go home"), SLOT (home (void)),
                     m_doc_browser, m_tool_bar);
 
     m_action_go_prev
-      = add_action (rmgr.icon ("go-previous"), tr ("Go back"),
+      = add_action (settings.icon ("go-previous"), tr ("Go back"),
                     SLOT (backward (void)), m_doc_browser, m_tool_bar);
     m_action_go_prev->setEnabled (false);
 
@@ -370,7 +373,7 @@
     m_tool_bar->addWidget (popdown_button_prev_pages);
 
     m_action_go_next
-      = add_action (rmgr.icon ("go-next"), tr ("Go forward"),
+      = add_action (settings.icon ("go-next"), tr ("Go forward"),
                     SLOT (forward (void)), m_doc_browser, m_tool_bar);
     m_action_go_next->setEnabled (false);
 
@@ -413,26 +416,26 @@
     // Find
     m_tool_bar->addSeparator ();
     m_action_find
-      = add_action (rmgr.icon ("edit-find"), tr ("Find"),
+      = add_action (settings.icon ("edit-find"), tr ("Find"),
                     SLOT (activate_find (void)), this, m_tool_bar);
 
     // Zoom
     m_tool_bar->addSeparator ();
     m_action_zoom_in
-      = add_action (rmgr.icon ("view-zoom-in"), tr ("Zoom in"),
+      = add_action (settings.icon ("view-zoom-in"), tr ("Zoom in"),
                     SLOT (zoom_in (void)), m_doc_browser, m_tool_bar);
     m_action_zoom_out
-      = add_action (rmgr.icon ("view-zoom-out"), tr ("Zoom out"),
+      = add_action (settings.icon ("view-zoom-out"), tr ("Zoom out"),
                     SLOT (zoom_out (void)), m_doc_browser, m_tool_bar);
     m_action_zoom_original
-      = add_action (rmgr.icon ("view-zoom-original"), tr ("Zoom original"),
+      = add_action (settings.icon ("view-zoom-original"), tr ("Zoom original"),
                     SLOT (zoom_original (void)), m_doc_browser, m_tool_bar);
 
     // Bookmarks (connect slots later)
     m_tool_bar->addSeparator ();
     m_action_bookmark
-      = add_action (rmgr.icon ("bookmark-new"), tr ("Bookmark current page"),
-                    nullptr, nullptr, m_tool_bar);
+      = add_action (settings.icon ("bookmark-new"),
+                    tr ("Bookmark current page"), nullptr, nullptr, m_tool_bar);
   }
 
   void documentation::global_search (void)
--- a/libgui/src/dw-main-window.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/dw-main-window.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -37,6 +37,7 @@
 
 #include "dw-main-window.h"
 #include "gui-preferences-sc.h"
+#include "gui-settings.h"
 #include "octave-qobject.h"
 #include "shortcut-manager.h"
 
@@ -46,19 +47,19 @@
   dw_main_window::dw_main_window (base_qobject& oct_qobj, QWidget *p)
     : QMainWindow (p), m_octave_qobj (oct_qobj)
   {
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     // Adding the actions for closing the dock widgets
     m_close_action
-      = add_action (nullptr, rmgr.icon ("window-close", false),
+      = add_action (nullptr, settings.icon ("window-close", false),
                     tr ("&Close"), SLOT (request_close ()), this);
 
     m_close_all_action
-      = add_action (nullptr, rmgr.icon ("window-close", false),
+      = add_action (nullptr, settings.icon ("window-close", false),
                     tr ("Close &All"), SLOT (request_close_all ()), this);
 
     m_close_others_action
-      = add_action (nullptr, rmgr.icon ("window-close", false),
+      = add_action (nullptr, settings.icon ("window-close", false),
                     tr ("Close &Other"), SLOT (request_close_other ()), this);
 
     m_switch_left_action
--- a/libgui/src/files-dock-widget.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/files-dock-widget.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -227,20 +227,21 @@
     QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred);
     m_current_directory->setSizePolicy (sizePol);
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     QAction *directory_up_action
-      = new QAction (rmgr.icon ("folder-up", false, "go-up"), "", m_navigation_tool_bar);
+      = new QAction (settings.icon ("folder-up", false, "go-up"), "",
+                     m_navigation_tool_bar);
     directory_up_action->setToolTip (tr ("One directory up"));
 
     m_sync_browser_directory_action
-      = new QAction (rmgr.icon ("go-first"), tr ("Show Octave directory"),
+      = new QAction (settings.icon ("go-first"), tr ("Show Octave directory"),
                      m_navigation_tool_bar);
     m_sync_browser_directory_action->setToolTip (tr ("Go to current Octave directory"));
     m_sync_browser_directory_action->setEnabled (false);
 
     m_sync_octave_directory_action
-      = new QAction (rmgr.icon ("go-last"), tr ("Set Octave directory"),
+      = new QAction (settings.icon ("go-last"), tr ("Set Octave directory"),
                      m_navigation_tool_bar);
     m_sync_octave_directory_action->setToolTip (tr ("Set Octave directory to current browser directory"));
     m_sync_octave_directory_action->setEnabled (false);
@@ -248,7 +249,7 @@
     QToolButton *popdown_button = new QToolButton ();
     popdown_button->setToolTip (tr ("Actions on current directory"));
     QMenu *popdown_menu = new QMenu ();
-    popdown_menu->addAction (rmgr.icon ("user-home"),
+    popdown_menu->addAction (settings.icon ("user-home"),
                              tr ("Show Home Directory"), this,
                              SLOT (popdownmenu_home (bool)));
     popdown_menu->addAction (m_sync_browser_directory_action);
@@ -256,22 +257,23 @@
     popdown_button->setMenu (popdown_menu);
     popdown_button->setPopupMode (QToolButton::InstantPopup);
     popdown_button->setDefaultAction (
-        new QAction (rmgr.icon ("folder-settings", false, "applications-system"),
-        "", m_navigation_tool_bar));
+        new QAction (settings.icon ("folder-settings", false,
+                                    "applications-system"),
+                     "", m_navigation_tool_bar));
 
     popdown_menu->addSeparator ();
-    popdown_menu->addAction (rmgr.icon ("folder"),
+    popdown_menu->addAction (settings.icon ("folder"),
                              tr ("Set Browser Directory..."),
                              this, &files_dock_widget::popdownmenu_search_dir);
     popdown_menu->addSeparator ();
-    popdown_menu->addAction (rmgr.icon ("edit-find"),
+    popdown_menu->addAction (settings.icon ("edit-find"),
                              tr ("Find Files..."),
                              this, &files_dock_widget::popdownmenu_findfiles);
     popdown_menu->addSeparator ();
-    popdown_menu->addAction (rmgr.icon ("document-new"),
+    popdown_menu->addAction (settings.icon ("document-new"),
                              tr ("New File..."),
                              this, &files_dock_widget::popdownmenu_newfile);
-    popdown_menu->addAction (rmgr.icon ("folder-new"),
+    popdown_menu->addAction (settings.icon ("folder-new"),
                              tr ("New Directory..."),
                              this, &files_dock_widget::popdownmenu_newdir);
 
@@ -286,8 +288,6 @@
     connect (m_sync_browser_directory_action, &QAction::triggered,
              this, &files_dock_widget::do_sync_browser_directory);
 
-    gui_settings settings;
-
     // Create the QFileSystemModel starting in the desired directory
     QDir startup_dir;  // take current dir
 
@@ -650,10 +650,10 @@
                                 | QItemSelectionModel::Rows);
           }
 
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings settings;
 
         // construct the context menu depending on item
-        menu.addAction (rmgr.icon ("document-open"), tr ("Open"),
+        menu.addAction (settings.icon ("document-open"), tr ("Open"),
                         this, &files_dock_widget::contextmenu_open);
 
         if (info.isDir ())
@@ -670,7 +670,7 @@
                         this, &files_dock_widget::contextmenu_copy_selection);
 
         if (info.isFile () && info.suffix () == "m")
-          menu.addAction (rmgr.icon ("media-playback-start"), tr ("Run"),
+          menu.addAction (settings.icon ("media-playback-start"), tr ("Run"),
                           this, &files_dock_widget::contextmenu_run);
 
         if (info.isFile ())
@@ -680,7 +680,7 @@
         if (info.isDir ())
           {
             menu.addSeparator ();
-            menu.addAction (rmgr.icon ("go-first"), tr ("Set Current Directory"),
+            menu.addAction (settings.icon ("go-first"), tr ("Set Current Directory"),
                             this, &files_dock_widget::contextmenu_setcurrentdir);
 
             QMenu *add_path_menu = menu.addMenu (tr ("Add to Path"));
@@ -699,21 +699,21 @@
 
             menu.addSeparator ();
 
-            menu.addAction (rmgr.icon ("edit-find"), tr ("Find Files..."),
+            menu.addAction (settings.icon ("edit-find"), tr ("Find Files..."),
                             this, &files_dock_widget::contextmenu_findfiles);
           }
 
         menu.addSeparator ();
         menu.addAction (m_rename_action);
-        menu.addAction (rmgr.icon ("edit-delete"), tr ("Delete..."),
+        menu.addAction (settings.icon ("edit-delete"), tr ("Delete..."),
                         this, &files_dock_widget::contextmenu_delete);
 
         if (info.isDir ())
           {
             menu.addSeparator ();
-            menu.addAction (rmgr.icon ("document-new"), tr ("New File..."),
+            menu.addAction (settings.icon ("document-new"), tr ("New File..."),
                             this, &files_dock_widget::contextmenu_newfile);
-            menu.addAction (rmgr.icon ("folder-new"), tr ("New Directory..."),
+            menu.addAction (settings.icon ("folder-new"), tr ("New Directory..."),
                             this, &files_dock_widget::contextmenu_newdir);
           }
 
--- a/libgui/src/find-files-dialog.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/find-files-dialog.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -57,10 +57,10 @@
   find_files_dialog::find_files_dialog (QWidget *p, base_qobject& oct_qobj)
     : QDialog (p), m_octave_qobj (oct_qobj)
   {
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     setWindowTitle (tr ("Find Files"));
-    setWindowIcon (rmgr.icon ("edit-find"));
+    setWindowIcon (settings.icon ("edit-find"));
 
     m_dir_iterator = nullptr;
 
@@ -68,8 +68,6 @@
     connect (m_timer, &QTimer::timeout,
              this, &find_files_dialog::look_for_files);
 
-    gui_settings settings;
-
     QLabel *file_name_label = new QLabel (tr ("Named:"));
     m_file_name_edit = new QLineEdit;
     m_file_name_edit->setToolTip (tr ("Enter the filename search expression"));
--- a/libgui/src/gui-settings.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/gui-settings.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -28,8 +28,10 @@
 #endif
 
 #include <QApplication>
+#include <QFile>
 #include <QSettings>
 
+#include "gui-preferences-global.h"
 #include "gui-settings.h"
 
 namespace octave
@@ -109,4 +111,68 @@
     return key_seq;
   }
 
+  void gui_settings::config_icon_theme (void)
+  {
+    int theme = global_icon_theme_index.def.toInt ();
+
+    // check for new and old setting and use old if required
+    if (! contains (global_icon_theme_index.key))
+      {
+        // new pref does not exist
+        if (value (global_icon_theme).toBool ())
+          theme = ICON_THEME_SYSTEM;
+        else
+          theme = ICON_THEME_OCTAVE;
+        setValue (global_icon_theme_index.key, theme);  // add new
+        remove (global_icon_theme.key); // remove deprecated key
+      }
+
+   QIcon::setThemeName (global_all_icon_themes.at (theme));
+
+   QStringList icon_fallbacks;
+
+   // set the required fallback search paths
+   switch (theme)
+    {
+      case ICON_THEME_SYSTEM:
+        icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
+        icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
+        break;
+      case ICON_THEME_TANGO:
+        icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
+        break;
+      case ICON_THEME_OCTAVE:
+        icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
+        break;
+    }
+
+    icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS);
+
+    setValue (global_icon_fallbacks.key, icon_fallbacks);
+  }
+
+  QIcon gui_settings::icon (const QString& icon_name, bool octave_only,
+                            const QString& icon_alt_name)
+  {
+    if (octave_only)
+      return QIcon (global_icon_paths.at (ICON_THEME_OCTAVE) + icon_name + ".png");
+
+    if (QIcon::hasThemeIcon (icon_name))
+      return QIcon (QIcon::fromTheme (icon_name));
+    else if ((! icon_alt_name.isEmpty ()) && QIcon::hasThemeIcon (icon_alt_name))
+      return QIcon (QIcon::fromTheme (icon_alt_name));
+
+    QStringList icon_fallbacks
+      = value (global_icon_fallbacks.key).toStringList ();
+
+    for (int i = 0; i < icon_fallbacks.length (); i++ )
+      {
+        QString icon_file (icon_fallbacks.at (i) + icon_name + ".png");
+        if (QFile (icon_file).exists ())
+          return QIcon (icon_file);
+      }
+
+      //QIcon::setThemeName (current_theme);
+      return QIcon ();
+  }
 }
--- a/libgui/src/gui-settings.h	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/gui-settings.h	Fri Dec 02 18:43:12 2022 -0500
@@ -26,6 +26,8 @@
 #if ! defined (octave_gui_settings_h)
 #define octave_gui_settings_h 1
 
+#include <QIcon>
+#include <QString>
 #include <QSettings>
 
 #include "gui-preferences.h"
@@ -123,6 +125,18 @@
 
     QKeySequence sc_def_value (const sc_pref& pref) const;
 
+    // Both config_icon_theme and icon could be global functions instead
+    // of member functions.  But at least for the icon function,
+    // defining it as a member function means that we can create a
+    // single gui_settings object and access multiple icon objects
+    // rather than having to create a separate settings object each time
+    // that an icon is needed.  OTOH, creating the base QSettings object
+    // is supposed to be fast, so that may not matter.  Hmm.
+
+    void config_icon_theme (void);
+
+    QIcon icon (const QString& icon_name, bool octave_only = false,
+                const QString& icon_alt_name = QString ());
   };
 
 }
--- a/libgui/src/history-dock-widget.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/history-dock-widget.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -150,13 +150,13 @@
 
     if (index.isValid () && index.column () == 0)
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings settings;
 
-        menu.addAction (rmgr.icon ("edit-copy"), tr ("Copy"), this,
+        menu.addAction (settings.icon ("edit-copy"), tr ("Copy"), this,
                         &history_dock_widget::handle_contextmenu_copy);
         menu.addAction (tr ("Evaluate"), this,
                         &history_dock_widget::handle_contextmenu_evaluate);
-        menu.addAction (rmgr.icon ("document-new"), tr ("Create script"), this,
+        menu.addAction (settings.icon ("document-new"), tr ("Create script"), this,
                         &history_dock_widget::handle_contextmenu_create_script);
       }
     if (m_filter_shown)
--- a/libgui/src/m-editor/file-editor.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/m-editor/file-editor.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -977,7 +977,7 @@
     QObject *fileEditorTab = sender ();
     if (fileEditorTab)
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings settings;
 
         for (int i = 0; i < m_tab_widget->count (); i++)
           {
@@ -990,7 +990,7 @@
                 m_current_tab_modified = modified;
 
                 if (modified)
-                  m_tab_widget->setTabIcon (i, rmgr.icon ("document-save"));
+                  m_tab_widget->setTabIcon (i, settings.icon ("document-save"));
                 else
                   m_tab_widget->setTabIcon (i, QIcon ());
               }
@@ -1934,6 +1934,7 @@
     m_tab_widget = new file_editor_tab_widget (editor_widget, this);
 
     // the mru-list and an empty array of actions
+
     gui_settings settings;
 
     m_mru_files = settings.value (ed_mru_file_list).toStringList ();
@@ -1975,36 +1976,34 @@
 
     m_fileMenu->addSeparator ();
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-
     m_save_action
-      = add_action (m_fileMenu, rmgr.icon ("document-save"),
+      = add_action (m_fileMenu, settings.icon ("document-save"),
                     tr ("&Save File"), SLOT (request_save_file (bool)));
 
     m_save_as_action
-      = add_action (m_fileMenu, rmgr.icon ("document-save-as"),
+      = add_action (m_fileMenu, settings.icon ("document-save-as"),
                     tr ("Save File &As..."),
                     SLOT (request_save_file_as (bool)));
 
     m_fileMenu->addSeparator ();
 
     m_close_action
-      = add_action (m_fileMenu, rmgr.icon ("window-close", false),
+      = add_action (m_fileMenu, settings.icon ("window-close", false),
                     tr ("&Close"), SLOT (request_close_file (bool)));
 
     m_close_all_action
-      = add_action (m_fileMenu, rmgr.icon ("window-close", false),
+      = add_action (m_fileMenu, settings.icon ("window-close", false),
                     tr ("Close All"), SLOT (request_close_all_files (bool)));
 
     m_close_others_action
-      = add_action (m_fileMenu, rmgr.icon ("window-close", false),
+      = add_action (m_fileMenu, settings.icon ("window-close", false),
                     tr ("Close Other Files"),
                     SLOT (request_close_other_files (bool)));
 
     m_fileMenu->addSeparator ();
 
     m_print_action
-      = add_action (m_fileMenu, rmgr.icon ("document-print"),
+      = add_action (m_fileMenu, settings.icon ("document-print"),
                     tr ("Print..."), SLOT (request_print_file (bool)));
 
     // edit menu (undo, copy, paste and select all later via main window)
@@ -2012,19 +2011,19 @@
     m_edit_menu = add_menu (m_menu_bar, tr ("&Edit"));
 
     m_redo_action
-      = add_action (m_edit_menu, rmgr.icon ("edit-redo"),
+      = add_action (m_edit_menu, settings.icon ("edit-redo"),
                     tr ("&Redo"), SLOT (request_redo (bool)));
     m_redo_action->setEnabled (false);
 
     m_edit_menu->addSeparator ();
 
     m_cut_action
-      = add_action (m_edit_menu, rmgr.icon ("edit-cut"),
+      = add_action (m_edit_menu, settings.icon ("edit-cut"),
                     tr ("Cu&t"), SLOT (request_cut (bool)));
     m_cut_action->setEnabled (false);
 
     m_find_action
-      = add_action (m_edit_menu, rmgr.icon ("edit-find-replace"),
+      = add_action (m_edit_menu, settings.icon ("edit-find-replace"),
                     tr ("&Find and Replace..."), SLOT (request_find (bool)));
 
     m_find_next_action
@@ -2176,12 +2175,12 @@
     m_edit_menu->addSeparator ();
 
     m_preferences_action
-      = add_action (m_edit_menu, rmgr.icon ("preferences-system"),
+      = add_action (m_edit_menu, settings.icon ("preferences-system"),
                     tr ("&Preferences..."),
                     SLOT (request_preferences (bool)));
 
     m_styles_preferences_action
-      = add_action (m_edit_menu, rmgr.icon ("preferences-system"),
+      = add_action (m_edit_menu, settings.icon ("preferences-system"),
                     tr ("&Styles Preferences..."),
                     SLOT (request_styles_preferences (bool)));
 
@@ -2236,16 +2235,16 @@
     view_menu->addSeparator ();
 
     m_zoom_in_action
-      = add_action (view_menu, rmgr.icon ("view-zoom-in"), tr ("Zoom &In"),
+      = add_action (view_menu, settings.icon ("view-zoom-in"), tr ("Zoom &In"),
                     SLOT (zoom_in (bool)));
 
     m_zoom_out_action
-      = add_action (view_menu, rmgr.icon ("view-zoom-out"), tr ("Zoom &Out"),
-                    SLOT (zoom_out (bool)));
+      = add_action (view_menu, settings.icon ("view-zoom-out"),
+                    tr ("Zoom &Out"), SLOT (zoom_out (bool)));
 
     m_zoom_normal_action
-      = add_action (view_menu, rmgr.icon ("view-zoom-original"), tr ("&Normal Size"),
-                    SLOT (zoom_normal (bool)));
+      = add_action (view_menu, settings.icon ("view-zoom-original"),
+                    tr ("&Normal Size"), SLOT (zoom_normal (bool)));
 
     view_menu->addSeparator ();
 
@@ -2261,22 +2260,22 @@
     m_debug_menu = add_menu (m_menu_bar, tr ("&Debug"));
 
     m_toggle_breakpoint_action
-      = add_action (m_debug_menu, rmgr.icon ("bp-toggle"),
+      = add_action (m_debug_menu, settings.icon ("bp-toggle"),
                     tr ("Toggle &Breakpoint"),
                     SLOT (request_toggle_breakpoint (bool)));
 
     m_next_breakpoint_action
-      = add_action (m_debug_menu, rmgr.icon ("bp-next"),
+      = add_action (m_debug_menu, settings.icon ("bp-next"),
                     tr ("&Next Breakpoint"),
                     SLOT (request_next_breakpoint (bool)));
 
     m_previous_breakpoint_action
-      = add_action (m_debug_menu, rmgr.icon ("bp-prev"),
+      = add_action (m_debug_menu, settings.icon ("bp-prev"),
                     tr ("Pre&vious Breakpoint"),
                     SLOT (request_previous_breakpoint (bool)));
 
     m_remove_all_breakpoints_action
-      = add_action (m_debug_menu, rmgr.icon ("bp-rm-all"),
+      = add_action (m_debug_menu, settings.icon ("bp-rm-all"),
                     tr ("&Remove All Breakpoints"),
                     SLOT (request_remove_breakpoint (bool)));
 
@@ -2290,7 +2289,7 @@
 
     m_run_action
       = add_action (_run_menu,
-                    rmgr.icon ("system-run"),
+                    settings.icon ("system-run"),
                     tr ("Save File and Run / Continue"),
                     SLOT (request_run_file (bool)));
 
--- a/libgui/src/main-window.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/main-window.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -135,7 +135,9 @@
 
     setObjectName (gui_obj_name_main_window);
 
-    rmgr.config_icon_theme ();
+    gui_settings settings;
+
+    settings.config_icon_theme ();
 
     rmgr.update_network_settings ();
 
@@ -174,8 +176,6 @@
     m_default_style = qapp->style ()->objectName ();
     m_default_palette = qapp->palette ();
 
-    gui_settings settings;
-
     bool connect_to_web = true;
     QDateTime last_checked;
     int serial = 0;
@@ -2195,10 +2195,10 @@
 
     construct_new_menu (file_menu);
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     m_open_action = add_action (
-                      file_menu, rmgr.icon ("document-open"), tr ("Open..."),
+                      file_menu, settings.icon ("document-open"), tr ("Open..."),
                       SLOT (request_open_file (void)), this);
     m_open_action->setToolTip (tr ("Open an existing file in editor"));
 
@@ -2240,10 +2240,10 @@
   {
     QMenu *new_menu = p->addMenu (tr ("New"));
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     m_new_script_action = add_action (
-          new_menu, rmgr.icon ("document-new"), tr ("New Script"),
+          new_menu, settings.icon ("document-new"), tr ("New Script"),
           SLOT (request_new_script (void)), this);
 
     m_new_function_action = add_action (
@@ -2261,20 +2261,21 @@
 
     QKeySequence ctrl_shift = Qt::ControlModifier + Qt::ShiftModifier;
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
+
     m_undo_action
-      = edit_menu->addAction (rmgr.icon ("edit-undo"), tr ("Undo"));
+      = edit_menu->addAction (settings.icon ("edit-undo"), tr ("Undo"));
     m_undo_action->setShortcutContext (Qt::ApplicationShortcut);
 
     edit_menu->addSeparator ();
 
     m_copy_action
-      = edit_menu->addAction (rmgr.icon ("edit-copy"), tr ("Copy"), this,
+      = edit_menu->addAction (settings.icon ("edit-copy"), tr ("Copy"), this,
                               &main_window::copyClipboard);
     m_copy_action->setShortcutContext (Qt::ApplicationShortcut);
 
     m_paste_action
-      = edit_menu->addAction (rmgr.icon ("edit-paste"), tr ("Paste"), this,
+      = edit_menu->addAction (settings.icon ("edit-paste"), tr ("Paste"), this,
                               &main_window::pasteClipboard);
     m_paste_action->setShortcutContext (Qt::ApplicationShortcut);
 
@@ -2290,7 +2291,7 @@
     edit_menu->addSeparator ();
 
     m_find_files_action
-      = edit_menu->addAction (rmgr.icon ("edit-find"), tr ("Find Files..."));
+      = edit_menu->addAction (settings.icon ("edit-find"), tr ("Find Files..."));
 
     edit_menu->addSeparator ();
 
@@ -2309,7 +2310,7 @@
       = edit_menu->addAction (tr ("Set Path"));
 
     m_preferences_action
-      = edit_menu->addAction (rmgr.icon ("preferences-system"),
+      = edit_menu->addAction (settings.icon ("preferences-system"),
                               tr ("Preferences..."));
 
     connect (m_find_files_action, &QAction::triggered,
@@ -2347,8 +2348,9 @@
                                                     const QString& item,
                                                     const char *member)
   {
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-    QAction *action = add_action (m_debug_menu, rmgr.icon (QString (icon)),
+    gui_settings settings;
+
+    QAction *action = add_action (m_debug_menu, settings.icon (QString (icon)),
                                   item, member);
 
     action->setEnabled (false);
@@ -2604,12 +2606,14 @@
     // need to delete these upon destroying this main_window.
     m_main_tool_bar->addWidget (new QLabel (tr ("Current Directory: ")));
     m_main_tool_bar->addWidget (m_current_directory_combo_box);
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+
+    gui_settings settings;
+
     QAction *current_dir_up
-      = m_main_tool_bar->addAction (rmgr.icon ("folder-up", false, "go-up"),
+      = m_main_tool_bar->addAction (settings.icon ("folder-up", false, "go-up"),
                                     tr ("One directory up"));
     QAction *current_dir_search
-      = m_main_tool_bar->addAction (rmgr.icon ("folder"),
+      = m_main_tool_bar->addAction (settings.icon ("folder"),
                                     tr ("Browse directories"));
 
     connect (m_current_directory_combo_box, SIGNAL (activated (const QString&)),
--- a/libgui/src/octave-dock-widget.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/octave-dock-widget.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -73,13 +73,13 @@
           }
       }
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     // the custom (extra) title bar of the widget
     m_title_widget = new QWidget ();
 
     m_dock_action = new QAction
-      (rmgr.icon ("widget-undock", true), "", this);
+      (settings.icon ("widget-undock", true), "", this);
     m_dock_action->setToolTip (tr ("Undock widget"));
     m_dock_button = new QToolButton (m_title_widget);
     m_dock_button->setDefaultAction (m_dock_action);
@@ -87,7 +87,7 @@
     m_dock_button->setIconSize (QSize (m_icon_size, m_icon_size));
 
     m_close_action = new QAction
-      (rmgr.icon ("widget-close", true), "", this);
+      (settings.icon ("widget-close", true), "", this);
     m_close_action->setToolTip (tr ("Close widget"));
     m_close_button = new QToolButton (m_title_widget);
     m_close_button->setDefaultAction (m_close_action);
@@ -314,8 +314,9 @@
     // adjust the (un)dock icon
     if (titleBarWidget ())
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-        m_dock_action->setIcon (rmgr.icon ("widget-dock" + m_icon_color, true));
+        gui_settings settings;
+
+        m_dock_action->setIcon (settings.icon ("widget-dock" + m_icon_color, true));
         m_dock_action->setToolTip (tr ("Dock widget"));
       }
     else
@@ -342,14 +343,14 @@
   void
   octave_dock_widget::make_widget (bool)
   {
+    gui_settings settings;
+
     bool vis = isVisible ();
 
     // Since floating widget has no parent, we have to read it
 
     if (m_main_window)
       {
-        gui_settings settings;
-
         settings.setValue (mw_state.key, m_main_window->saveState ());
 
         // Stay window, otherwise will bounce back to window by default
@@ -373,9 +374,7 @@
              this, &octave_dock_widget::make_window);
     if (titleBarWidget ())
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-
-        m_dock_action->setIcon (rmgr.icon ("widget-undock" + m_icon_color, true));
+        m_dock_action->setIcon (settings.icon ("widget-undock" + m_icon_color, true));
         m_dock_action->setToolTip (tr ("Undock widget"));
       }
     else
@@ -587,11 +586,11 @@
   void
   octave_dock_widget::save_settings (void)
   {
+    gui_settings settings;
+
     // save state of this dock-widget
     QString name = objectName ();
 
-    gui_settings settings;
-
     store_geometry ();
 
     // conditional needed?
@@ -802,13 +801,14 @@
     QString full_close_icon = "widget-close" + icon_col;
     if (titleBarWidget ())
       {
-        resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+        gui_settings settings;
+
         titleBarWidget ()->setStyleSheet (css_foreground + css_background);
         css_button = QString ("QToolButton {background: transparent; border: 0px;}");
         m_dock_button->setStyleSheet (css_button);
         m_close_button->setStyleSheet (css_button);
-        m_dock_action->setIcon (rmgr.icon (full_dock_icon, true));
-        m_close_action->setIcon (rmgr.icon (full_close_icon, true));
+        m_dock_action->setIcon (settings.icon (full_dock_icon, true));
+        m_close_action->setIcon (settings.icon (full_close_icon, true));
       }
     else
       {
--- a/libgui/src/octave-qobject.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/octave-qobject.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -46,6 +46,7 @@
 #include "community-news.h"
 #include "documentation-dock-widget.h"
 #include "files-dock-widget.h"
+#include "gui-settings.h"
 #include "history-dock-widget.h"
 #include "interpreter-qobject.h"
 #include "main-window.h"
@@ -310,7 +311,10 @@
 
             // After settings.
             config_translators ();
-            m_resource_manager.config_icon_theme ();
+
+            gui_settings settings;
+
+            settings.config_icon_theme ();
 
             // Initilize the shortcut-manager
             m_shortcut_manager.init_data ();
--- a/libgui/src/qt-interpreter-events.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/qt-interpreter-events.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -438,8 +438,9 @@
   {
     QMutexLocker autolock (&m_mutex);
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-    m_result = QVariant::fromValue (rmgr.icon (name));
+    gui_settings settings;
+
+    m_result = QVariant::fromValue (settings.icon (name));
 
     wake_all ();
   }
--- a/libgui/src/resource-manager.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/resource-manager.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -48,6 +48,7 @@
 #include "gui-preferences-cs.h"
 #include "gui-preferences-ed.h"
 #include "gui-preferences-global.h"
+#include "gui-settings.h"
 #include "octave-qobject.h"
 #include "resource-manager.h"
 #include "variable-editor.h"
@@ -139,48 +140,6 @@
 
   }
 
-  void resource_manager::config_icon_theme (void)
-  {
-    int theme = global_icon_theme_index.def.toInt ();
-
-    gui_settings settings;
-
-    // check for new and old setting and use old if required
-    if (! settings.contains (global_icon_theme_index.key))
-      {
-        // new pref does not exist
-        if (settings.value (global_icon_theme).toBool ())
-          theme = ICON_THEME_SYSTEM;
-        else
-          theme = ICON_THEME_OCTAVE;
-        settings.setValue (global_icon_theme_index.key, theme);  // add new
-        settings.remove (global_icon_theme.key); // remove deprecated key
-      }
-
-   QIcon::setThemeName (global_all_icon_themes.at (theme));
-
-   QStringList icon_fallbacks;
-
-   // set the required fallback search paths
-   switch (theme)
-    {
-      case ICON_THEME_SYSTEM:
-        icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
-        icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
-        break;
-      case ICON_THEME_TANGO:
-        icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE);
-        break;
-      case ICON_THEME_OCTAVE:
-        icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO);
-        break;
-    }
-
-    icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS);
-
-    settings.setValue (global_icon_fallbacks.key, icon_fallbacks);
-  }
-
   QString resource_manager::get_settings_directory (void)
   {
     return m_settings_directory;
@@ -568,33 +527,6 @@
     sys::env::putenv ("HTTPS_PROXY", proxy_url_str);
   }
 
-  QIcon resource_manager::icon (const QString& icon_name, bool octave_only,
-                                const QString& icon_alt_name)
-  {
-    if (octave_only)
-      return QIcon (global_icon_paths.at (ICON_THEME_OCTAVE) + icon_name + ".png");
-
-    if (QIcon::hasThemeIcon (icon_name))
-      return QIcon (QIcon::fromTheme (icon_name));
-    else if ((! icon_alt_name.isEmpty ()) && QIcon::hasThemeIcon (icon_alt_name))
-      return QIcon (QIcon::fromTheme (icon_alt_name));
-
-    gui_settings settings;
-
-    QStringList icon_fallbacks
-      = settings.value (global_icon_fallbacks.key).toStringList ();
-
-    for (int i = 0; i < icon_fallbacks.length (); i++ )
-      {
-        QString icon_file (icon_fallbacks.at (i) + icon_name + ".png");
-        if (QFile (icon_file).exists ())
-          return QIcon (icon_file);
-      }
-
-      //QIcon::setThemeName (current_theme);
-      return QIcon ();
-  }
-
   // get a list of all available encodings
   void resource_manager::get_codecs (QStringList *codecs)
   {
--- a/libgui/src/resource-manager.h	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/resource-manager.h	Fri Dec 02 18:43:12 2022 -0500
@@ -27,7 +27,6 @@
 #define octave_resource_manager_h 1
 
 #include <QComboBox>
-#include <QIcon>
 #include <QPointer>
 #if defined (HAVE_QSCINTILLA)
 #  include <Qsci/qscilexer.h>
@@ -59,7 +58,6 @@
 
     void config_translators (QTranslator *qt_tr, QTranslator *qsci_tr,
                              QTranslator *gui_tr);
-    void config_icon_theme (void);
 
     QString get_settings_directory (void);
 
@@ -88,9 +86,6 @@
 
     void update_network_settings (void);
 
-    QIcon icon (const QString& icon_name, bool octave_only = false,
-                const QString& icon_alt_name = QString ());
-
     void get_codecs (QStringList *codecs);
 
     void combo_encoding (QComboBox *combo, const QString& current = QString ());
--- a/libgui/src/variable-editor.cc	Fri Dec 02 18:31:30 2022 -0500
+++ b/libgui/src/variable-editor.cc	Fri Dec 02 18:43:12 2022 -0500
@@ -114,9 +114,10 @@
     m_prev_geom = QRect (0, 0, 0, 0);
 
     QHBoxLayout *h_layout = m_title_widget->findChild<QHBoxLayout *> ();
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+
+    gui_settings settings;
     m_fullscreen_action
-      = new QAction (rmgr.icon ("view-fullscreen", false), "", this);
+      = new QAction (settings.icon ("view-fullscreen", false), "", this);
     m_fullscreen_action->setToolTip (tr (DOCKED_FULLSCREEN_BUTTON_TOOLTIP));
     QToolButton *fullscreen_button = new QToolButton (m_title_widget);
     fullscreen_button->setDefaultAction (m_fullscreen_action);
@@ -149,8 +150,8 @@
         if (m_full_screen)
           {
             setGeometry (m_prev_geom);
-            resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
-            m_fullscreen_action->setIcon (rmgr.icon ("view-fullscreen", false));
+            gui_settings settings;
+            m_fullscreen_action->setIcon (settings.icon ("view-fullscreen", false));
             m_full_screen = false;
           }
         m_fullscreen_action->setToolTip (tr (DOCKED_FULLSCREEN_BUTTON_TOOLTIP));
@@ -208,12 +209,12 @@
   void
   variable_dock_widget::change_fullscreen (void)
   {
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
     if (! m_full_screen)
       {
         m_prev_floating = isFloating ();
-        m_fullscreen_action->setIcon (rmgr.icon ("view-restore", false));
+        m_fullscreen_action->setIcon (settings.icon ("view-restore", false));
         if (m_prev_floating)
           m_fullscreen_action->setToolTip (tr ("Restore geometry"));
         else
@@ -233,7 +234,7 @@
       }
     else
       {
-        m_fullscreen_action->setIcon (rmgr.icon ("view-fullscreen", false));
+        m_fullscreen_action->setIcon (settings.icon ("view-fullscreen", false));
         setGeometry (m_prev_geom);
         if (m_prev_floating)
           m_fullscreen_action->setToolTip (tr (UNDOCKED_FULLSCREEN_BUTTON_TOOLTIP));
@@ -644,31 +645,31 @@
   variable_editor_view::add_edit_actions (QMenu *menu,
                                           const QString& qualifier_string)
   {
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
-    menu->addAction (rmgr.icon ("edit-cut"),
+    menu->addAction (settings.icon ("edit-cut"),
                      tr ("Cut") + qualifier_string,
                      this, &variable_editor_view::cutClipboard);
 
-    menu->addAction (rmgr.icon ("edit-copy"),
+    menu->addAction (settings.icon ("edit-copy"),
                      tr ("Copy") + qualifier_string,
                      this, &variable_editor_view::copyClipboard);
 
-    menu->addAction (rmgr.icon ("edit-paste"),
+    menu->addAction (settings.icon ("edit-paste"),
                      tr ("Paste"),
                      this, &variable_editor_view::pasteClipboard);
 
     menu->addSeparator ();
 
-    menu->addAction (rmgr.icon ("edit-delete"),
+    menu->addAction (settings.icon ("edit-delete"),
                      tr ("Clear") + qualifier_string,
                      this, &variable_editor_view::clearContent);
 
-    menu->addAction (rmgr.icon ("edit-delete"),
+    menu->addAction (settings.icon ("edit-delete"),
                      tr ("Delete") + qualifier_string,
                      this, &variable_editor_view::delete_selected);
 
-    menu->addAction (rmgr.icon ("document-new"),
+    menu->addAction (settings.icon ("document-new"),
                      tr ("Variable from Selection"),
                      this, &variable_editor_view::createVariable);
   }
@@ -1663,22 +1664,23 @@
 
     m_tool_bar->setWindowTitle (tr ("Variable Editor Toolbar"));
 
-    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings settings;
 
-    m_save_action = add_tool_bar_button (rmgr.icon ("document-save"), tr ("Save"),
-                                         this, SLOT (save ()));
+    m_save_action = add_tool_bar_button (settings.icon ("document-save"),
+                                         tr ("Save"), this, SLOT (save ()));
     addAction (m_save_action);
     m_save_action->setShortcutContext (Qt::WidgetWithChildrenShortcut);
     m_save_action->setStatusTip(tr("Save variable to a file"));
 
-    QAction *action = new QAction (rmgr.icon ("document-save-as"), tr ("Save in format ..."), m_tool_bar);
+    QAction *action = new QAction (settings.icon ("document-save-as"),
+                                   tr ("Save in format ..."), m_tool_bar);
 
     QToolButton *save_tool_button = new HoverToolButton (m_tool_bar);
     save_tool_button->setDefaultAction (action);
 
     save_tool_button->setText (tr ("Save in format ..."));
     save_tool_button->setToolTip (tr("Save variable to a file in different format"));
-    save_tool_button->setIcon (rmgr.icon ("document-save-as"));
+    save_tool_button->setIcon (settings.icon ("document-save-as"));
     save_tool_button->setPopupMode (QToolButton::InstantPopup);
 
     QMenu *save_menu = new ReturnFocusMenu (save_tool_button);
@@ -1697,15 +1699,15 @@
 
     m_tool_bar->addSeparator ();
 
-    action = add_tool_bar_button (rmgr.icon ("edit-cut"), tr ("Cut"),
+    action = add_tool_bar_button (settings.icon ("edit-cut"), tr ("Cut"),
                                   this, SLOT (cutClipboard ()));
     action->setStatusTip(tr("Cut data to clipboard"));
 
-    action = add_tool_bar_button (rmgr.icon ("edit-copy"), tr ("Copy"),
+    action = add_tool_bar_button (settings.icon ("edit-copy"), tr ("Copy"),
                                   this, SLOT (copyClipboard ()));
     action->setStatusTip(tr("Copy data to clipboard"));
 
-    action = add_tool_bar_button (rmgr.icon ("edit-paste"), tr ("Paste"),
+    action = add_tool_bar_button (settings.icon ("edit-paste"), tr ("Paste"),
                                   this, SLOT (pasteClipboard ()));
     action->setStatusTip(tr("Paste clipboard into variable data"));
 
@@ -1715,14 +1717,15 @@
     // QAction *print_action; /icons/fileprint.png
     // m_tool_bar->addSeparator ();
 
-    action = new QAction (rmgr.icon ("plot-xy-curve"), tr ("Plot"), m_tool_bar);
+    action = new QAction (settings.icon ("plot-xy-curve"), tr ("Plot"),
+                          m_tool_bar);
     action->setToolTip (tr ("Plot Selected Data"));
     QToolButton *plot_tool_button = new HoverToolButton (m_tool_bar);
     plot_tool_button->setDefaultAction (action);
 
     plot_tool_button->setText (tr ("Plot"));
     plot_tool_button->setToolTip (tr ("Plot selected data"));
-    plot_tool_button->setIcon (rmgr.icon ("plot-xy-curve"));
+    plot_tool_button->setIcon (settings.icon ("plot-xy-curve"));
 
     plot_tool_button->setPopupMode (QToolButton::InstantPopup);
 
@@ -1738,7 +1741,7 @@
 
     m_tool_bar->addSeparator ();
 
-    action = add_tool_bar_button (rmgr.icon ("go-up"), tr ("Up"), this,
+    action = add_tool_bar_button (settings.icon ("go-up"), tr ("Up"), this,
                                   SLOT (levelUp ()));
     action->setStatusTip(tr("Go one level up in variable hierarchy"));