[grits] Save prefs after changes
- From: Andy Spencer <andys src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grits] Save prefs after changes
- Date: Tue, 3 Jan 2012 01:19:29 +0000 (UTC)
commit e7490685f87d22ef6b348854c210cea233881c87
Author: Andy Spencer <andy753421 gmail com>
Date: Thu Oct 27 05:03:46 2011 +0000
Save prefs after changes
src/grits-prefs.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/src/grits-prefs.c b/src/grits-prefs.c
index 80a1d49..c89ff23 100644
--- a/src/grits-prefs.c
+++ b/src/grits-prefs.c
@@ -42,6 +42,19 @@ enum {
};
static guint signals[NUM_SIGNALS];
+/* Helper functions */
+static void grits_prefs_save(GritsPrefs *prefs)
+{
+ gsize length;
+ gchar *dir = g_path_get_dirname(prefs->key_path);
+ if (!g_file_test(dir, G_FILE_TEST_EXISTS))
+ g_mkdir_with_parents(dir, 0755);
+ gchar *data = g_key_file_to_data(prefs->key_file, &length, NULL);
+ g_file_set_contents(prefs->key_path, data, length, NULL);
+ g_free(dir);
+ g_free(data);
+}
+
/***********
* Methods *
***********/
@@ -118,6 +131,7 @@ void grits_prefs_set_##name##_v(GritsPrefs *prefs,
gchar *all = g_strconcat(group, "/", key, NULL); \
g_signal_emit(prefs, signals[SIG_PREF_CHANGED], 0, \
all, g_type, &value); \
+ grits_prefs_save(prefs); \
g_free(all); \
} \
void grits_prefs_set_##name(GritsPrefs *prefs, const gchar *key, const c_type value) \
@@ -147,15 +161,9 @@ static void grits_prefs_dispose(GObject *_prefs)
g_debug("GritsPrefs: dispose");
GritsPrefs *prefs = GRITS_PREFS(_prefs);
if (prefs->key_file) {
- gsize length;
- gchar *dir = g_path_get_dirname(prefs->key_path);
- g_mkdir_with_parents(dir, 0755);
- gchar *data = g_key_file_to_data(prefs->key_file, &length, NULL);
- g_file_set_contents(prefs->key_path, data, length, NULL);
+ grits_prefs_save(prefs);
g_key_file_free(prefs->key_file);
g_free(prefs->key_path);
- g_free(dir);
- g_free(data);
prefs->key_file = NULL;
}
G_OBJECT_CLASS(grits_prefs_parent_class)->dispose(_prefs);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]