[gnome-builder] prefs: add IdePreferencesSwitch:path



commit c026942622ef341728334195f2eb40146baf6fad
Author: Christian Hergert <chergert redhat com>
Date:   Sat Nov 7 02:23:29 2015 -0800

    prefs: add IdePreferencesSwitch:path
    
    Allow specifying path for the switch

 libide/preferences/ide-preferences-switch.c |   28 ++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/libide/preferences/ide-preferences-switch.c b/libide/preferences/ide-preferences-switch.c
index fd2aa19..353dfe7 100644
--- a/libide/preferences/ide-preferences-switch.c
+++ b/libide/preferences/ide-preferences-switch.c
@@ -28,6 +28,7 @@ struct _IdePreferencesSwitch
 
   gchar     *key;
   gchar     *schema_id;
+  gchar     *path;
   GSettings *settings;
   GVariant  *target;
 
@@ -42,11 +43,12 @@ G_DEFINE_TYPE (IdePreferencesSwitch, ide_preferences_switch, IDE_TYPE_PREFERENCE
 enum {
   PROP_0,
   PROP_IS_RADIO,
+  PROP_KEY,
+  PROP_PATH,
+  PROP_SCHEMA_ID,
   PROP_SUBTITLE,
   PROP_TARGET,
   PROP_TITLE,
-  PROP_SCHEMA_ID,
-  PROP_KEY,
   LAST_PROP
 };
 
@@ -125,7 +127,11 @@ ide_preferences_switch_constructed (GObject *object)
       goto chainup;
     }
 
-  self->settings = g_settings_new (self->schema_id);
+  if (self->path != NULL)
+    self->settings = g_settings_new_with_path (self->schema_id, self->path);
+  else
+    self->settings = g_settings_new (self->schema_id);
+
   signal_detail = g_strdup_printf ("changed::%s", self->key);
 
   g_signal_connect_object (self->settings,
@@ -246,6 +252,7 @@ ide_preferences_switch_finalize (GObject *object)
 
   g_clear_pointer (&self->key, g_free);
   g_clear_pointer (&self->schema_id, g_free);
+  g_clear_pointer (&self->path, g_free);
   g_clear_pointer (&self->target, g_variant_unref);
   g_clear_object (&self->settings);
 
@@ -274,6 +281,10 @@ ide_preferences_switch_get_property (GObject    *object,
       g_value_set_string (value, self->key);
       break;
 
+    case PROP_PATH:
+      g_value_set_string (value, self->path);
+      break;
+
     case PROP_TARGET:
       g_value_set_variant (value, self->target);
       break;
@@ -315,6 +326,10 @@ ide_preferences_switch_set_property (GObject      *object,
       self->key = g_value_dup_string (value);
       break;
 
+    case PROP_PATH:
+      self->path = g_value_dup_string (value);
+      break;
+
     case PROP_TARGET:
       self->target = g_value_dup_variant (value);
       break;
@@ -384,6 +399,13 @@ ide_preferences_switch_class_init (IdePreferencesSwitchClass *klass)
                          NULL,
                          (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 
+  properties [PROP_PATH] =
+    g_param_spec_string ("path",
+                         "Path",
+                         "Path",
+                         NULL,
+                         (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
+
   properties [PROP_TITLE] =
     g_param_spec_string ("title",
                          "Title",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]