aboutsummaryrefslogtreecommitdiff
path: root/src/settings.vala
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-09-19 20:25:50 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-09-19 20:25:50 +0200
commit03092a036323eef2aa71e8e273d628cfe1238dc1 (patch)
treeb21d4d87ecb8492a28f29f580070bd36c739e94b /src/settings.vala
parent264b8a7cde8a728f154f72233e676dafeaac55cb (diff)
parent273045dc19e23c31f7cf412e56c4acd325c8ef92 (diff)
downloadarctica-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.vala44
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_;
}