[gnome-desktop] gnome-bg: load the default background if the configured one is invalid
- From: Sebastien Bacher <sbacher src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-desktop] gnome-bg: load the default background if the configured one is invalid
- Date: Wed, 18 Jul 2012 09:16:38 +0000 (UTC)
commit 6deb007f102d8ae9eabb10808f34d7129932dad3
Author: Sebastien Bacher <seb128 ubuntu com>
Date: Tue Jul 17 16:11:24 2012 +0200
gnome-bg: load the default background if the configured one is invalid
https://bugzilla.gnome.org/show_bug.cgi?id=680100
libgnome-desktop/gnome-bg.c | 38 ++++++++++++++++++++++++++++----------
1 files changed, 28 insertions(+), 10 deletions(-)
---
diff --git a/libgnome-desktop/gnome-bg.c b/libgnome-desktop/gnome-bg.c
index b903e4a..393b8f2 100644
--- a/libgnome-desktop/gnome-bg.c
+++ b/libgnome-desktop/gnome-bg.c
@@ -290,6 +290,33 @@ queue_transitioned (GnomeBG *bg)
NULL);
}
+static gboolean
+bg_gsettings_mapping (GVariant *value,
+ gpointer *result,
+ gpointer user_data)
+{
+ const gchar *bg_key_value;
+ char *filename = NULL;
+
+ bg_key_value = g_variant_get_string (value, NULL);
+
+ if (bg_key_value && *bg_key_value != '\0') {
+ filename = g_filename_from_uri (bg_key_value, NULL, NULL);
+
+ if (filename != NULL && g_file_test (filename, G_FILE_TEST_EXISTS) == FALSE) {
+ g_free (filename);
+ return FALSE;
+ }
+
+ if (filename != NULL) {
+ *result = filename;
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
void
gnome_bg_load_from_preferences (GnomeBG *bg,
GSettings *settings)
@@ -306,16 +333,7 @@ gnome_bg_load_from_preferences (GnomeBG *bg,
bg->is_enabled = g_settings_get_boolean (settings, BG_KEY_DRAW_BACKGROUND);
/* Filename */
- filename = NULL;
- tmp = g_settings_get_string (settings, BG_KEY_PICTURE_URI);
- if (tmp && *tmp != '\0') {
- filename = g_filename_from_uri (tmp, NULL, NULL);
- if (filename != NULL && g_file_test (filename, G_FILE_TEST_EXISTS) == FALSE) {
- g_free (filename);
- filename = NULL;
- }
- }
- g_free (tmp);
+ filename = g_settings_get_mapped (settings, BG_KEY_PICTURE_URI, bg_gsettings_mapping, NULL);
/* Colors */
tmp = g_settings_get_string (settings, BG_KEY_PRIMARY_COLOR);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]