[gnome-builder] prefs: add night-mode switch to preferences
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] prefs: add night-mode switch to preferences
- Date: Sat, 16 May 2015 11:25:43 +0000 (UTC)
commit 046bc6bcf20709ac9d0b218c4f09ecdc7caa7b13
Author: Christian Hergert <christian hergert me>
Date: Sat May 16 04:24:57 2015 -0700
prefs: add night-mode switch to preferences
This also makes `nighthack` and `dayhack` persist between multiple
executions of Builder.
data/gsettings/org.gnome.builder.gschema.xml | 5 +++++
data/ui/gb-preferences-page-theme.ui | 13 +++++++++++++
src/app/gb-application.c | 11 +++++++++--
3 files changed, 27 insertions(+), 2 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.gschema.xml b/data/gsettings/org.gnome.builder.gschema.xml
index 95c72e8..acb2421 100644
--- a/data/gsettings/org.gnome.builder.gschema.xml
+++ b/data/gsettings/org.gnome.builder.gschema.xml
@@ -15,5 +15,10 @@
<summary>Window maximized</summary>
<description>Window maximized state</description>
</key>
+ <key name="night-mode" type="b">
+ <default>false</default>
+ <summary>Night Mode</summary>
+ <description>Prefer dark application chrome.</description>
+ </key>
</schema>
</schemalist>
diff --git a/data/ui/gb-preferences-page-theme.ui b/data/ui/gb-preferences-page-theme.ui
index 4b59697..c6603d6 100644
--- a/data/ui/gb-preferences-page-theme.ui
+++ b/data/ui/gb-preferences-page-theme.ui
@@ -13,6 +13,16 @@
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
+ <object class="GbPreferencesSwitch" id="night_mode">
+ <property name="title" translatable="yes">Night Mode</property>
+ <property name="description" translatable="yes">Use dark colors for the application
chrome.</property>
+ <property name="settings">settings</property>
+ <property name="settings-schema-key">night-mode</property>
+ <property name="size-group">control_group</property>
+ <property name="visible">true</property>
+ </object>
+ </child>
+ <child>
<object class="GbPreferencesSwitch" id="show_grid_lines_switch">
<property name="title" translatable="yes">Display Grid Pattern</property>
<property name="description" translatable="yes">Display a grid pattern under the source
code.</property>
@@ -36,6 +46,9 @@
<object class="GSettings" id="editor_settings">
<property name="schema-id">org.gnome.builder.editor</property>
</object>
+ <object class="GSettings" id="settings">
+ <property name="schema-id">org.gnome.builder</property>
+ </object>
<object class="GtkSizeGroup" id="control_group">
<property name="mode">horizontal</property>
</object>
diff --git a/src/app/gb-application.c b/src/app/gb-application.c
index 388d62e..8a51fd0 100644
--- a/src/app/gb-application.c
+++ b/src/app/gb-application.c
@@ -106,7 +106,9 @@ gb_application_make_skeleton_dirs (GbApplication *self)
static void
gb_application_register_theme_overrides (GbApplication *application)
{
- GtkCssProvider *provider;
+ g_autoptr(GSettings) settings = NULL;
+ g_autoptr(GtkCssProvider) provider = NULL;
+ GtkSettings *gtk_settings;
GdkScreen *screen;
IDE_ENTRY;
@@ -118,7 +120,12 @@ gb_application_register_theme_overrides (GbApplication *application)
screen = gdk_screen_get_default ();
gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- g_object_unref (provider);
+
+ gtk_settings = gtk_settings_get_for_screen (screen);
+ settings = g_settings_new ("org.gnome.builder");
+ g_settings_bind (settings, "night-mode",
+ gtk_settings, "gtk-application-prefer-dark-theme",
+ G_SETTINGS_BIND_DEFAULT);
IDE_EXIT;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]