[gnome-utils/gsettings-tutorial: 11/22] [gsettings-tutorial] Stop using gconf for enable_home_monitor
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-utils/gsettings-tutorial: 11/22] [gsettings-tutorial] Stop using gconf for enable_home_monitor
- Date: Sat, 17 Apr 2010 00:07:48 +0000 (UTC)
commit d5ebcb27f8f2e8e8e7738e1f87f83aaad8f7d025
Author: Vincent Untz <vuntz gnome org>
Date: Fri Apr 16 16:28:14 2010 -0400
[gsettings-tutorial] Stop using gconf for enable_home_monitor
We simply get the initial value with g_settings_get_boolean() and then
monitor changes.
A few notes:
+ Compared to the previous gconf code, we now support changes of the
key that are not done via the prefs dialog.
+ The prefs dialog doesn't need to know about the main part of the
application now: it just cares about changing the setting key.
baobab/src/baobab-prefs.c | 13 -------------
baobab/src/baobab.c | 24 ++++++++++++++++++------
baobab/src/baobab.h | 3 ++-
3 files changed, 20 insertions(+), 20 deletions(-)
---
diff --git a/baobab/src/baobab-prefs.c b/baobab/src/baobab-prefs.c
index 21d955a..10e3e13 100644
--- a/baobab/src/baobab-prefs.c
+++ b/baobab/src/baobab-prefs.c
@@ -53,9 +53,6 @@ static gboolean set_gconf_list (GtkTreeModel * model, GtkTreePath * path,
static gboolean set_model_checks (GtkTreeModel * model, GtkTreePath * path,
GtkTreeIter * iter, gpointer data);
-static void enable_home_cb (GtkToggleButton * togglebutton,
- gpointer user_data);
-
void
props_notify (GConfClient *client,
@@ -140,10 +137,6 @@ create_props (void)
G_SETTINGS_BIND_DEFAULT);
g_object_unref (settings_properties);
- g_signal_connect_after ((GtkToggleButton *) check_enablehome,
- "toggled", G_CALLBACK (enable_home_cb),
- NULL);
-
g_signal_connect (dlg, "response",
G_CALLBACK (filechooser_response_cb),
NULL);
@@ -410,9 +403,3 @@ set_model_checks (GtkTreeModel *model,
return FALSE;
}
-
-void
-enable_home_cb (GtkToggleButton *togglebutton, gpointer user_data)
-{
- baobab.bbEnableHomeMonitor = gtk_toggle_button_get_active (togglebutton);
-}
diff --git a/baobab/src/baobab.c b/baobab/src/baobab.c
index 9997ccc..6a5fc09 100644
--- a/baobab/src/baobab.c
+++ b/baobab/src/baobab.c
@@ -638,6 +638,14 @@ baobab_settings_subfoldertips_changed (GSettings *settings,
}
static void
+baobab_settings_home_monitor_changed (GSettings *settings,
+ const gchar *key,
+ gpointer user_data)
+{
+ baobab.bbEnableHomeMonitor = g_settings_get_boolean (settings, key);
+}
+
+static void
store_excluded_locations (void)
{
GSList *l;
@@ -807,14 +815,9 @@ baobab_init (void)
monitor_volume ();
- baobab.bbEnableHomeMonitor = gconf_client_get_bool (baobab.gconf_client,
- PROPS_ENABLE_HOME_MONITOR,
- NULL);
-
- monitor_home_dir ();
-
/* GSettings */
baobab.settings_ui = g_settings_new ("org.gnome.baobab.ui");
+ baobab.settings_properties = g_settings_new ("org.gnome.baobab.properties");
g_settings_bind (baobab.settings_ui, BAOBAB_TOOLBAR_VISIBLE_KEY,
baobab.toolbar, "visible",
@@ -832,6 +835,13 @@ baobab_init (void)
g_signal_connect (baobab.settings_ui, "changed::" BAOBAB_SUBFLSTIPS_VISIBLE_KEY,
(GCallback) baobab_settings_subfoldertips_changed, NULL);
+
+ baobab.bbEnableHomeMonitor = g_settings_get_boolean (baobab.settings_properties,
+ PROPS_ENABLE_HOME_MONITOR);
+ g_signal_connect (baobab.settings_properties, "changed::" PROPS_ENABLE_HOME_MONITOR,
+ (GCallback) baobab_settings_home_monitor_changed, NULL);
+
+ monitor_home_dir ();
}
static void
@@ -854,6 +864,8 @@ baobab_shutdown (void)
if (baobab.gconf_client)
g_object_unref (baobab.gconf_client);
+ if (baobab.settings_properties)
+ g_object_unref (baobab.settings_properties);
if (baobab.settings_ui)
g_object_unref (baobab.settings_ui);
}
diff --git a/baobab/src/baobab.h b/baobab/src/baobab.h
index 3c5fdac..8f8dac6 100644
--- a/baobab/src/baobab.h
+++ b/baobab/src/baobab.h
@@ -44,7 +44,7 @@ struct BaobabSearchOpt;
#define BAOBAB_STATUSBAR_VISIBLE_KEY "statusbar_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 PROPS_ENABLE_HOME_MONITOR "enable_home_monitor"
#define SYSTEM_TOOLBAR_STYLE "/desktop/gnome/interface/toolbar_style"
typedef struct _ContextMenu ContextMenu;
@@ -83,6 +83,7 @@ struct _baobab_application {
char *selected_path;
GConfClient *gconf_client;
+ GSettings *settings_properties;
GSettings *settings_ui;
gint model_max_depth;
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]