# HG changeset patch # User John W. Eaton # Date 1670023890 18000 # Node ID 6dfaaf8ecf3bccbd4ee2dc40b35f22a7452c9069 # Parent ad014fc78bd64a955e34f0e8bbf2e282f9146ab9 use gui_settings to store icon fallbacks * gui-preferences-global.h (global_icon_fallbacks): New gui_pref. * resource-manager.cc, resource-manager.h (resource_manager::m_icon_fallbacks): Delete member variable. (resource_manager::config_icon_theme, resource_manager::icon): Use gui_settings to store icon fallback themes. diff -r ad014fc78bd6 -r 6dfaaf8ecf3b libgui/src/gui-preferences-global.h --- a/libgui/src/gui-preferences-global.h Fri Dec 02 14:23:53 2022 -0500 +++ b/libgui/src/gui-preferences-global.h Fri Dec 02 18:31:30 2022 -0500 @@ -118,6 +118,9 @@ }; const gui_pref +global_icon_fallbacks ("icon_fallbacks", QVariant (QStringList ())); + +const gui_pref global_status_bar ("show_status_bar", QVariant (true)); diff -r ad014fc78bd6 -r 6dfaaf8ecf3b libgui/src/resource-manager.cc --- a/libgui/src/resource-manager.cc Fri Dec 02 14:23:53 2022 -0500 +++ b/libgui/src/resource-manager.cc Fri Dec 02 18:31:30 2022 -0500 @@ -64,8 +64,7 @@ namespace octave { resource_manager::resource_manager (void) - : m_settings_directory (), m_settings_file (), - m_temporary_files (), m_icon_fallbacks () + : m_settings_directory (), m_settings_file (), m_temporary_files () { // Location, name, and format of settings file determined by // settings in qt_application class construtor. @@ -142,8 +141,6 @@ void resource_manager::config_icon_theme (void) { - m_icon_fallbacks.clear (); - int theme = global_icon_theme_index.def.toInt (); gui_settings settings; @@ -162,22 +159,26 @@ QIcon::setThemeName (global_all_icon_themes.at (theme)); + QStringList icon_fallbacks; + // set the required fallback search paths switch (theme) { case ICON_THEME_SYSTEM: - m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); - m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); + icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); + icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); break; case ICON_THEME_TANGO: - m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); + icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); break; case ICON_THEME_OCTAVE: - m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); + icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); break; } - m_icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS); + icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS); + + settings.setValue (global_icon_fallbacks.key, icon_fallbacks); } QString resource_manager::get_settings_directory (void) @@ -578,9 +579,14 @@ else if ((! icon_alt_name.isEmpty ()) && QIcon::hasThemeIcon (icon_alt_name)) return QIcon (QIcon::fromTheme (icon_alt_name)); - for (int i = 0; i < m_icon_fallbacks.length (); i++ ) + 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 (m_icon_fallbacks.at (i) + icon_name + ".png"); + QString icon_file (icon_fallbacks.at (i) + icon_name + ".png"); if (QFile (icon_file).exists ()) return QIcon (icon_file); } diff -r ad014fc78bd6 -r 6dfaaf8ecf3b libgui/src/resource-manager.h --- a/libgui/src/resource-manager.h Fri Dec 02 14:23:53 2022 -0500 +++ b/libgui/src/resource-manager.h Fri Dec 02 18:31:30 2022 -0500 @@ -113,8 +113,6 @@ QString m_settings_file; QList m_temporary_files; - - QStringList m_icon_fallbacks; }; }