[gnome-utils/gsettings-tutorial: 9/22] [gsettings-tutorial] Use the changed signal from GSettings



commit 8d471455083ac7daa8fb8d886d2a26d32532d4e9
Author: Vincent Untz <vuntz gnome org>
Date:   Fri Apr 16 15:27:37 2010 -0400

    [gsettings-tutorial] Use the changed signal from GSettings
    
    Instead of using gconf to monitor changes to the subfolder tooltip
    visibility, we use the changed signal of GSettings. This enables us to
    get rid of the gconf handling for that part.
    
    A few notes:
    
      + We can specify the key we're interested in for the changed signal
        with a detail: we therefore connect to
        "changed::baobab_subfoldertips_visible".

 baobab/src/baobab.c |   20 +++++++++++---------
 baobab/src/baobab.h |    2 +-
 2 files changed, 12 insertions(+), 10 deletions(-)
---
diff --git a/baobab/src/baobab.c b/baobab/src/baobab.c
index 69a3f78..9997ccc 100644
--- a/baobab/src/baobab.c
+++ b/baobab/src/baobab.c
@@ -627,15 +627,14 @@ baobab_create_statusbar (void)
 }
 
 static void
-baobab_subfolderstips_toggled (GConfClient *client,
-			       guint cnxn_id,
-			       GConfEntry *entry,
-			       gpointer user_data)
+baobab_settings_subfoldertips_changed (GSettings   *settings,
+				       const gchar *key,
+				       gpointer     user_data)
 {
-	baobab_ringschart_set_subfoldertips_enabled (baobab.rings_chart,
-						     gconf_client_get_bool (baobab.gconf_client,
-									    BAOBAB_SUBFLSTIPS_VISIBLE_KEY,
-									    NULL));
+	gboolean visible;
+
+	visible = g_settings_get_boolean (settings, key);
+	baobab_ringschart_set_subfoldertips_enabled (baobab.rings_chart, visible);
 }
 
 static void
@@ -830,6 +829,9 @@ baobab_init (void)
 	g_settings_bind (baobab.settings_ui, BAOBAB_STATUSBAR_VISIBLE_KEY,
 			 GTK_TOGGLE_ACTION (gtk_builder_get_object (baobab.main_ui, "view_sb")), "active",
 			 G_SETTINGS_BIND_DEFAULT);
+
+	g_signal_connect (baobab.settings_ui, "changed::" BAOBAB_SUBFLSTIPS_VISIBLE_KEY,
+			  (GCallback) baobab_settings_subfoldertips_changed, NULL);
 }
 
 static void
@@ -1014,7 +1016,7 @@ initialize_charts (void)
 					     COL_H_ELEMENTS,
 					     NULL);
 	visible = g_settings_get_boolean (baobab.settings_ui,
-					  "baobab_subfoldertips_visible");
+					  BAOBAB_SUBFLSTIPS_VISIBLE_KEY);
 	baobab_ringschart_set_subfoldertips_enabled (baobab.rings_chart, visible);
 	baobab_chart_set_max_depth (baobab.rings_chart, 1);
 	g_signal_connect (baobab.rings_chart, "item_activated",
diff --git a/baobab/src/baobab.h b/baobab/src/baobab.h
index 331e419..3c5fdac 100644
--- a/baobab/src/baobab.h
+++ b/baobab/src/baobab.h
@@ -42,7 +42,7 @@ struct BaobabSearchOpt;
 #define BAOBAB_KEY_DIR "/apps/baobab"
 #define BAOBAB_TOOLBAR_VISIBLE_KEY	"toolbar_visible"
 #define BAOBAB_STATUSBAR_VISIBLE_KEY	"statusbar_visible"
-#define BAOBAB_SUBFLSTIPS_VISIBLE_KEY   BAOBAB_KEY_DIR "/ui/baobab_subfoldertips_visible"
+#define BAOBAB_SUBFLSTIPS_VISIBLE_KEY   "baobab_subfoldertips_visible"
 #define PROPS_SCAN_KEY			BAOBAB_KEY_DIR "/properties/skip_scan_uri_list"
 #define PROPS_ENABLE_HOME_MONITOR	BAOBAB_KEY_DIR "/properties/enable_home_monitor"
 #define SYSTEM_TOOLBAR_STYLE		"/desktop/gnome/interface/toolbar_style"



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