changeset 26058:ecd86b8b8979

use constants for icon size preferences instead of hard coded numbers * gui-preferences.h: define constants for icons size preferences key and default value as well as array with possible icon sizes * documentation.cc (notice_settings): use constants for preferences key and default value, get index for array with possible sizes from preferences value and set icons size accordingly * files-dock-widget.cc (notice_settings): dito * file-editor.cc (notice_settings): dito * main-window.cc (notice_settings): dito * variable-editor.cc (notice_settings): dito
author Torsten <mttl@mailbox.org>
date Sun, 11 Nov 2018 13:22:37 +0100
parents afc3d1da58e5
children da2bbcf1fbcd
files libgui/src/documentation.cc libgui/src/files-dock-widget.cc libgui/src/gui-preferences.h libgui/src/m-editor/file-editor.cc libgui/src/main-window.cc libgui/src/variable-editor.cc
diffstat 6 files changed, 38 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/documentation.cc	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/documentation.cc	Sun Nov 11 13:22:37 2018 +0100
@@ -49,6 +49,7 @@
 #include "documentation.h"
 #include "resource-manager.h"
 #include "shortcut-manager.h"
+#include "gui-preferences.h"
 
 namespace octave
 {
@@ -422,18 +423,12 @@
   void documentation::notice_settings (const QSettings *settings)
   {
     // Icon size in the toolbar.
-
-    int icon_size_settings = settings->value ("toolbar_icon_size", 0).toInt ();
-    QStyle *st = style ();
-    int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
+    int size_idx = settings->value (global_icon_size.key,
+                                    global_icon_size.def).toInt ();
+    size_idx = (size_idx > 0) - (size_idx < 0) + 1;  // Make valid index from 0 to 2
 
-    // FIXME: Magic numbers.  Use enum?
-
-    if (icon_size_settings == 1)
-      icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
-    else if (icon_size_settings == -1)
-      icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
-
+    QStyle *st = style ();
+    int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
     m_tool_bar->setIconSize (QSize (icon_size, icon_size));
 
     // Shortcuts
--- a/libgui/src/files-dock-widget.cc	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/files-dock-widget.cc	Sun Nov 11 13:22:37 2018 +0100
@@ -800,15 +800,12 @@
   {
     // Qsettings pointer is checked before emitting.
 
-    int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt ();
-    QStyle *st = style ();
-    int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
+    int size_idx = settings->value (global_icon_size.key,
+                                    global_icon_size.def).toInt ();
+    size_idx = (size_idx > 0) - (size_idx < 0) + 1;  // Make valid index from 0 to 2
 
-    if (icon_size_settings == 1)
-      icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
-    else if (icon_size_settings == -1)
-      icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
-
+    QStyle *st = style ();
+    int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
     m_navigation_tool_bar->setIconSize (QSize (icon_size,icon_size));
 
     // filenames are always shown, other columns can be hidden by settings
--- a/libgui/src/gui-preferences.h	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/gui-preferences.h	Sun Nov 11 13:22:37 2018 +0100
@@ -29,6 +29,7 @@
 
 #include <QStringList>
 #include <QVariant>
+#include <QStyle>
 
 // Structure for the definition of pairs: key and default value
 
@@ -52,6 +53,16 @@
 #endif
 const gui_pref global_mono_font ("monospace_font", global_font_family);
 
+// Icon size (in preferences: values -1, 0, 1)
+const QStyle::PixelMetric global_icon_sizes[3] =
+{
+  QStyle::PM_SmallIconSize,
+  QStyle::PM_LargeIconSize,
+  QStyle::PM_ToolBarIconSize
+};
+
+const gui_pref global_icon_size ("toolbar_icon_size", QVariant (0));
+
 
 // Console preferences
 
--- a/libgui/src/m-editor/file-editor.cc	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/m-editor/file-editor.cc	Sun Nov 11 13:22:37 2018 +0100
@@ -1060,16 +1060,13 @@
 
   void file_editor::notice_settings (const QSettings *settings)
   {
-    int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt ();
+    int size_idx = settings->value (global_icon_size.key,
+                                    global_icon_size.def).toInt ();
+    size_idx = (size_idx > 0) - (size_idx < 0) + 1;  // Make valid index from 0 to 2
+
     QStyle *st = style ();
-    int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
-
-    if (icon_size_settings == 1)
-      icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
-    else if (icon_size_settings == -1)
-      icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
-
-    m_tool_bar->setIconSize (QSize (icon_size,icon_size));
+    int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
+    m_tool_bar->setIconSize (QSize (icon_size, icon_size));
 
     int tab_width_min = settings->value ("editor/notebook_tab_width_min", 160)
                         .toInt ();
--- a/libgui/src/main-window.cc	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/main-window.cc	Sun Nov 11 13:22:37 2018 +0100
@@ -763,15 +763,12 @@
     else
       m_release_notes_icon = ":/actions/icons/logo.png";
 
-    int icon_size_settings = settings->value ("toolbar_icon_size",0).toInt ();
+    int size_idx = settings->value (global_icon_size.key,
+                                    global_icon_size.def).toInt ();
+    size_idx = (size_idx > 0) - (size_idx < 0) + 1;  // Make valid index from 0 to 2
+
     QStyle *st = style ();
-    int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
-
-    if (icon_size_settings == 1)
-      icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
-    else if (icon_size_settings == -1)
-      icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
-
+    int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
     m_main_tool_bar->setIconSize (QSize (icon_size,icon_size));
 
     if (settings->value ("show_status_bar",true).toBool ())
--- a/libgui/src/variable-editor.cc	Sat Nov 10 22:00:38 2018 -0800
+++ b/libgui/src/variable-editor.cc	Sun Nov 11 13:22:37 2018 +0100
@@ -1403,17 +1403,12 @@
 
     // Icon size in the toolbar.
 
-    int icon_size_settings = settings->value ("toolbar_icon_size", 0).toInt ();
-    QStyle *st = style ();
-    int icon_size = st->pixelMetric (QStyle::PM_ToolBarIconSize);
-
-    // FIXME: Magic numbers.  Use enum?
+    int size_idx = settings->value (global_icon_size.key,
+                                    global_icon_size.def).toInt ();
+    size_idx = (size_idx > 0) - (size_idx < 0) + 1;  // Make valid index from 0 to 2
 
-    if (icon_size_settings == 1)
-      icon_size = st->pixelMetric (QStyle::PM_LargeIconSize);
-    else if (icon_size_settings == -1)
-      icon_size = st->pixelMetric (QStyle::PM_SmallIconSize);
-
+    QStyle *st = style ();
+    int icon_size = st->pixelMetric (global_icon_sizes[size_idx]);
     m_tool_bar->setIconSize (QSize (icon_size, icon_size));
   }