diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-09-19 20:25:50 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-09-19 20:25:50 +0200 |
commit | 03092a036323eef2aa71e8e273d628cfe1238dc1 (patch) | |
tree | b21d4d87ecb8492a28f29f580070bd36c739e94b /src/settings.vala | |
parent | 264b8a7cde8a728f154f72233e676dafeaac55cb (diff) | |
parent | 273045dc19e23c31f7cf412e56c4acd325c8ef92 (diff) | |
download | arctica-greeter-03092a036323eef2aa71e8e273d628cfe1238dc1.tar.gz arctica-greeter-03092a036323eef2aa71e8e273d628cfe1238dc1.tar.bz2 arctica-greeter-03092a036323eef2aa71e8e273d628cfe1238dc1.zip |
Merge branch 'sunweaver-mr/highcontrast-icon-theme-toggling'
Attributes GH PR #70: https://github.com/ArcticaProject/arctica-greeter/pull/70
Diffstat (limited to 'src/settings.vala')
-rw-r--r-- | src/settings.vala | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/src/settings.vala b/src/settings.vala index 7e8306d..656b52a 100644 --- a/src/settings.vala +++ b/src/settings.vala @@ -38,6 +38,7 @@ public class AGSettings : Object public const string KEY_THEME_NAME = "theme-name"; public const string KEY_HIGH_CONTRAST_THEME_NAME = "high-contrast-theme-name"; public const string KEY_ICON_THEME_NAME = "icon-theme-name"; + public const string KEY_HIGH_CONTRAST_ICON_THEME_NAME = "high-contrast-icon-theme-name"; public const string KEY_CURSOR_THEME_NAME = "cursor-theme-name"; public const string KEY_CURSOR_THEME_SIZE = "cursor-theme-size"; public const string KEY_FONT_NAME = "font-name"; @@ -140,10 +141,19 @@ public class AGSettings : Object } construct { - Gtk.Settings.get_default ().get ("gtk-theme-name", out this.default_theme_name_); /* - debug ("Fetched default theme name in construct: %s", this.default_theme_name_); - */ + * This function is currently empty, but we'll keep it around, + * including this comment, because it's important to know what to do + * with it if it's needed. + * + * Since AGSettings is a SingleInstance class, this function will only + * be called once, as long as we make sure to create an instance early + * in the program cycle and keep a reference to it for the rest of its + * execution. + * + * In case you need to execute code once, whenever the first AGSettings + * instance is created, do it here. + */ } public bool high_contrast { @@ -162,20 +172,31 @@ public class AGSettings : Object greeter.switch_contrast (value); var settings = Gtk.Settings.get_default (); + var theme_name = ""; + var icon_theme_name = ""; + if (value) { - /* - debug ("Switching GTK Theme to high contrast theme \"%s\"", AGSettings.get_string (AGSettings.KEY_HIGH_CONTRAST_THEME_NAME)); - */ - settings.set ("gtk-theme-name", AGSettings.get_string (AGSettings.KEY_HIGH_CONTRAST_THEME_NAME)); + + /* FIXME: We need to check for wrong theme names here and handle such flaws gracefully */ + + theme_name = AGSettings.get_string (AGSettings.KEY_HIGH_CONTRAST_THEME_NAME); + icon_theme_name = AGSettings.get_string (AGSettings.KEY_HIGH_CONTRAST_ICON_THEME_NAME); + debug ("Switching GTK Theme to high contrast theme \"%s\"", theme_name); + debug ("Switching icon theme to high contrast theme \"%s\"", icon_theme_name); } else { - /* - debug ("Switching GTK Theme to default theme \"%s\"", this.default_theme_name_); - */ - settings.set ("gtk-theme-name", this.default_theme_name_); + + /* FIXME: We need to check for wrong theme names here and handle such flaws gracefully */ + + theme_name = AGSettings.get_string (AGSettings.KEY_THEME_NAME); + icon_theme_name = AGSettings.get_string (AGSettings.KEY_ICON_THEME_NAME); + debug ("Switching GTK Theme to default theme \"%s\"", theme_name); + debug ("Switching icon theme to default icon theme \"%s\"", icon_theme_name); } + settings.set ("gtk-theme-name", theme_name); + settings.set ("gtk-icon-theme-name", icon_theme_name); } } @@ -198,5 +219,4 @@ public class AGSettings : Object private const string SCHEMA = "org.ArcticaProject.arctica-greeter"; private bool high_contrast_ = AGSettings.get_boolean (AGSettings.KEY_HIGH_CONTRAST); private bool big_font_ = AGSettings.get_boolean (AGSettings.KEY_BIG_FONT); - private string default_theme_name_; } |