changeset 30815:b7058556854b

allow to specify a fallback icon for icon selection in the gui * files-dock-widget.cc (files_dock_widget): provide a fallback icon for the pulldown menu for themes that do not contain the new and non-standard icon folder-settings * libgui/src/icons/octave/128x128/folder-settings.png/.svg: new icon by Luis Eduardo Ribeiro Guerra * libgui/src/module.mk, libgui/src/resource.qrc: add new icon * resource-manager.cc/.h (icon): provide fallback icon as third argument
author Torsten Lilge <ttl-octave@mailbox.org>
date Thu, 03 Mar 2022 21:09:50 +0100
parents 6fefb4afbbe7
children 0e88072e8265
files libgui/src/files-dock-widget.cc libgui/src/icons/octave/128x128/folder-settings.png libgui/src/icons/octave/scalable/folder-settings.svg libgui/src/module.mk libgui/src/resource-manager.cc libgui/src/resource-manager.h libgui/src/resource.qrc
diffstat 7 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc	Thu Mar 03 15:02:03 2022 -0500
+++ b/libgui/src/files-dock-widget.cc	Thu Mar 03 21:09:50 2022 +0100
@@ -255,8 +255,9 @@
     popdown_menu->addAction (m_sync_octave_directory_action);
     popdown_button->setMenu (popdown_menu);
     popdown_button->setPopupMode (QToolButton::InstantPopup);
-    popdown_button->setDefaultAction (new QAction (rmgr.icon ("applications-system"),
-                                                   "", m_navigation_tool_bar));
+    popdown_button->setDefaultAction (
+        new QAction (rmgr.icon ("folder-settings", false, "applications-system"),
+        "", m_navigation_tool_bar));
 
     popdown_menu->addSeparator ();
     popdown_menu->addAction (rmgr.icon ("folder"),
Binary file libgui/src/icons/octave/128x128/folder-settings.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/icons/octave/scalable/folder-settings.svg	Thu Mar 03 21:09:50 2022 +0100
@@ -0,0 +1,1 @@
+<svg height="8px" width="8px" id="Camada_1" data-name="Camada 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 8 8"><defs><style>.cls-1{fill:#edb51f;}.cls-2{fill:#e6a928;}.cls-3{fill:url(#Gradiente_sem_nome_5);}.cls-4{fill:url(#Gradiente_sem_nome_2);}.cls-5{fill:#fff;}</style><linearGradient id="Gradiente_sem_nome_5" x1="1.8115" y1="2.3769" x2="6.3731" y2="6.9385" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe599"/><stop offset="1" stop-color="#ffc938"/></linearGradient><linearGradient id="Gradiente_sem_nome_2" x1="4.4982" y1="6.4379" x2="7.3734" y2="3.5627" gradientTransform="matrix(1, 0, 0, -1, 0, 10)" gradientUnits="userSpaceOnUse"><stop offset="0.1453" stop-color="#9da5ad"/><stop offset="0.8939" stop-color="#5a6670"/></linearGradient></defs><path class="cls-1" d="M6.2941,2H4l-.7618-.7618A.8134.8134,0,0,0,2.6631,1H1.3765A.3765.3765,0,0,0,1,1.3765V3.918A.082.082,0,0,0,1.082,4H6.918A.082.082,0,0,0,7,3.918V2.7059A.7058.7058,0,0,0,6.2941,2Z"/><path class="cls-2" d="M1,6H7A0,0,0,0,1,7,6v.68A.32.32,0,0,1,6.68,7H1.32A.32.32,0,0,1,1,6.68V6A0,0,0,0,1,1,6Z"/><path class="cls-3" d="M6.455,2.5H4.7038a.864.864,0,0,0-.3861.0911l-.7126.3564A.4983.4983,0,0,1,3.3825,3H1.3215A.3216.3216,0,0,0,1,3.3215V6.1784A.3216.3216,0,0,0,1.3216,6.5H6.6785A.3216.3216,0,0,0,7,6.1785V3.045A.545.545,0,0,0,6.455,2.5Z"/><path class="cls-4" d="M7.4141,5.194A1.5541,1.5541,0,0,0,7.4281,5a1.7142,1.7142,0,0,0-.014-.2l.42-.326a.1014.1014,0,0,0,.0239-.128L7.46,3.654a.0976.0976,0,0,0-.1214-.044l-.4954.2a1.4391,1.4391,0,0,0-.3363-.196l-.0736-.53A.1007.1007,0,0,0,6.3337,3H5.5378a.1009.1009,0,0,0-.0995.084l-.0736.53a1.44,1.44,0,0,0-.3362.196l-.4955-.2a.0975.0975,0,0,0-.1213.044l-.398.692a.099.099,0,0,0,.0239.128l.42.326a1.7142,1.7142,0,0,0-.014.2,1.5541,1.5541,0,0,0,.014.194l-.42.332a.099.099,0,0,0-.0239.128l.398.692a.1.1,0,0,0,.1213.044l.4955-.202a1.38,1.38,0,0,0,.3362.198l.0736.53A.1009.1009,0,0,0,5.5378,7h.7959a.1007.1007,0,0,0,.0995-.084l.0736-.53a1.45,1.45,0,0,0,.3363-.198l.4954.202A.1.1,0,0,0,7.46,6.346l.398-.692a.1014.1014,0,0,0-.0239-.128Z"/><ellipse class="cls-5" cx="5.9354" cy="5" rx="0.6451" ry="0.6667"/></svg>
\ No newline at end of file
--- a/libgui/src/module.mk	Thu Mar 03 15:02:03 2022 -0500
+++ b/libgui/src/module.mk	Thu Mar 03 21:09:50 2022 +0100
@@ -46,6 +46,7 @@
   %reldir%/icons/octave/128x128/figure-zoom-original.png \
   %reldir%/icons/octave/128x128/figure-zoom-out.png \
   %reldir%/icons/octave/128x128/folder-new.png \
+  %reldir%/icons/octave/128x128/folder-settings.png \
   %reldir%/icons/octave/128x128/folder-up.png \
   %reldir%/icons/octave/128x128/folder.png \
   %reldir%/icons/octave/128x128/go-down.png \
@@ -116,6 +117,7 @@
   %reldir%/icons/octave/scalable/figure-zoom-original.svg \
   %reldir%/icons/octave/scalable/figure-zoom-out.svg \
   %reldir%/icons/octave/scalable/folder-new.svg \
+  %reldir%/icons/octave/scalable/folder-settings.svg \
   %reldir%/icons/octave/scalable/folder-up.svg \
   %reldir%/icons/octave/scalable/folder.svg \
   %reldir%/icons/octave/scalable/go-down.svg \
--- a/libgui/src/resource-manager.cc	Thu Mar 03 15:02:03 2022 -0500
+++ b/libgui/src/resource-manager.cc	Thu Mar 03 21:09:50 2022 +0100
@@ -629,13 +629,16 @@
     sys::env::putenv ("HTTPS_PROXY", proxy_url_str);
   }
 
-  QIcon resource_manager::icon (const QString& icon_name, bool octave_only)
+  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));
 
     for (int i = 0; i < m_icon_fallbacks.length (); i++ )
       {
--- a/libgui/src/resource-manager.h	Thu Mar 03 15:02:03 2022 -0500
+++ b/libgui/src/resource-manager.h	Thu Mar 03 21:09:50 2022 +0100
@@ -97,7 +97,8 @@
 
     void update_network_settings (void);
 
-    QIcon icon (const QString& icon_name, bool octave_only = false);
+    QIcon icon (const QString& icon_name, bool octave_only = false,
+                const QString& icon_alt_name = QString ());
 
     void get_codecs (QStringList *codecs);
 
--- a/libgui/src/resource.qrc	Thu Mar 03 15:02:03 2022 -0500
+++ b/libgui/src/resource.qrc	Thu Mar 03 21:09:50 2022 +0100
@@ -46,6 +46,7 @@
         <file>icons/octave/128x128/figure-zoom-out.png</file>
         <file>icons/octave/128x128/folder.png</file>
         <file>icons/octave/128x128/folder-new.png</file>
+        <file>icons/octave/128x128/folder-settings.png</file>
         <file>icons/octave/128x128/folder-up.png</file>
         <file>icons/octave/128x128/go-down.png</file>
         <file>icons/octave/128x128/go-first.png</file>