Mercurial > octave
changeset 26140:8fb8cb4a03f8
preference for (not) using system icon theme
* gui-preferences.h: constants for key and default of new preference
* resource-manager.cc (do_icon): use icon files provided by octave gui
instead ofsystem icon theme if desired from preferences
* settings-dialog.cc (settings_dialog): initialize new checkbox with
related entry from preferences file;
(write_changed_settings): store value of new checkbox
* settings-dialog.ui: new checkbox for using the system icon theme in
author | Torsten <mttl@mailbox.org> |
---|---|
date | Mon, 26 Nov 2018 20:59:05 +0100 |
parents | 198902f24ef6 |
children | 42a06f8e6966 |
files | libgui/src/gui-preferences.h libgui/src/resource-manager.cc libgui/src/settings-dialog.cc libgui/src/settings-dialog.ui |
diffstat | 4 files changed, 90 insertions(+), 64 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/gui-preferences.h Mon Nov 26 20:53:24 2018 +0100 +++ b/libgui/src/gui-preferences.h Mon Nov 26 20:59:05 2018 +0100 @@ -61,7 +61,7 @@ QStyle::PM_LargeIconSize }; const gui_pref global_icon_size ("toolbar_icon_size", QVariant (0)); - +const gui_pref global_icon_theme ("use_system_icon_theme", QVariant (true)); // Console preferences
--- a/libgui/src/resource-manager.cc Mon Nov 26 20:53:24 2018 +0100 +++ b/libgui/src/resource-manager.cc Mon Nov 26 20:59:05 2018 +0100 @@ -363,6 +363,12 @@ QIcon resource_manager::do_icon (const QString& icon_name, bool fallback) { + // If system icon theme is not desired, take own icon files + if (! m_settings->value (global_icon_theme.key, global_icon_theme.def).toBool ()) + return QIcon (":/actions/icons/" + icon_name + ".png"); + + // Use system icon theme with own files as fallback except the fallback is + // explicitly disabled (fallback=false) if (fallback) return QIcon::fromTheme (icon_name, QIcon (":/actions/icons/" + icon_name + ".png"));
--- a/libgui/src/settings-dialog.cc Mon Nov 26 20:53:24 2018 +0100 +++ b/libgui/src/settings-dialog.cc Mon Nov 26 20:59:05 2018 +0100 @@ -124,7 +124,7 @@ else comboBox_language->setCurrentIndex (0); // System is default - // icon size + // icon size and theme QButtonGroup *icon_size_group = new QButtonGroup (this); icon_size_group->addButton (icon_size_small); icon_size_group->addButton (icon_size_normal); @@ -133,6 +133,7 @@ icon_size_normal->setChecked (true); // the default icon_size_small->setChecked (icon_size < 0); icon_size_large->setChecked (icon_size > 0); + cb_system_icon_theme->setChecked (settings->value (global_icon_theme.key, global_icon_theme.def).toBool ()); // which icon has to be selected QButtonGroup *icon_group = new QButtonGroup (this); @@ -814,9 +815,10 @@ settings->setValue ("DockWidgets/title_fg_color", m_widget_title_fg_color->color ()); settings->setValue ("DockWidgets/title_fg_color_active", m_widget_title_fg_color_active->color ()); - // icon size + // icon size and theme int icon_size = icon_size_large->isChecked () - icon_size_small->isChecked (); settings->setValue (global_icon_size.key, icon_size); + settings->setValue (global_icon_theme.key, cb_system_icon_theme->isChecked ()); // native file dialogs settings->setValue ("use_native_file_dialogs", cb_use_native_file_dialogs->isChecked ());
--- a/libgui/src/settings-dialog.ui Mon Nov 26 20:53:24 2018 +0100 +++ b/libgui/src/settings-dialog.ui Mon Nov 26 20:59:05 2018 +0100 @@ -32,7 +32,7 @@ </size> </property> <property name="currentIndex"> - <number>3</number> + <number>0</number> </property> <widget class="QWidget" name="tab_general"> <property name="enabled"> @@ -65,47 +65,6 @@ <layout class="QVBoxLayout" name="verticalLayout_21"> <item> <layout class="QGridLayout" name="gridLayout"> - <item row="2" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QRadioButton" name="icon_size_small"> - <property name="text"> - <string>Small</string> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="icon_size_normal"> - <property name="text"> - <string>Normal</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QRadioButton" name="icon_size_large"> - <property name="text"> - <string>Large</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> <item row="1" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_8"> <item> @@ -116,6 +75,13 @@ </widget> </item> <item> + <widget class="QLabel" name="label_10"> + <property name="text"> + <string>(requires restart)</string> + </property> + </widget> + </item> + <item> <spacer name="horizontalSpacer_3"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -130,17 +96,7 @@ </item> </layout> </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_8"> - <property name="text"> - <string>Icon size</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> - </property> - </widget> - </item> - <item row="8" column="0"> + <item row="10" column="0"> <widget class="QCheckBox" name="cb_prompt_to_exit"> <property name="text"> <string>Confirm before exiting</string> @@ -150,11 +106,11 @@ <item row="1" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> - <string>Language (requires restart)</string> + <string>Language</string> </property> </widget> </item> - <item row="4" column="1"> + <item row="6" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> <layout class="QGridLayout" name="gridLayout_13"> @@ -316,7 +272,7 @@ </item> </layout> </item> - <item row="4" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="label_15"> <property name="text"> <string>Dock widget title bar</string> @@ -326,7 +282,7 @@ </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <layout class="QHBoxLayout" name="horizontalLayout_9"> <item> <widget class="QRadioButton" name="general_icon_octave"> @@ -367,14 +323,14 @@ </item> </layout> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QLabel" name="label_9"> <property name="text"> <string>Icon set for dock widgets</string> </property> </widget> </item> - <item row="7" column="0"> + <item row="9" column="0"> <widget class="QCheckBox" name="cb_status_bar"> <property name="text"> <string>Show status bar</string> @@ -384,7 +340,7 @@ </property> </widget> </item> - <item row="6" column="0"> + <item row="8" column="0"> <widget class="QCheckBox" name="cb_cursor_blinking"> <property name="text"> <string>Cursor blinking</string> @@ -394,7 +350,7 @@ </property> </widget> </item> - <item row="5" column="0"> + <item row="7" column="0"> <widget class="QCheckBox" name="cb_use_native_file_dialogs"> <property name="text"> <string>Use native file dialogs</string> @@ -404,6 +360,68 @@ </property> </widget> </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>Toolbar Icons</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="2" column="1"> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <item> + <widget class="QRadioButton" name="icon_size_small"> + <property name="text"> + <string>Small</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="icon_size_normal"> + <property name="text"> + <string>Normal</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="icon_size_large"> + <property name="text"> + <string>Large</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="cb_system_icon_theme"> + <property name="text"> + <string>Use system icon theme if available (requires restart)</string> + </property> + </widget> + </item> + </layout> + </item> </layout> </item> </layout>