summaryrefslogtreecommitdiff
path: root/libcaja-private/caja-directory-background.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcaja-private/caja-directory-background.c')
-rw-r--r--libcaja-private/caja-directory-background.c130
1 files changed, 32 insertions, 98 deletions
diff --git a/libcaja-private/caja-directory-background.c b/libcaja-private/caja-directory-background.c
index c5286b8c..05a0f8e5 100644
--- a/libcaja-private/caja-directory-background.c
+++ b/libcaja-private/caja-directory-background.c
@@ -46,7 +46,7 @@ static void background_reset_callback (EelBackground *background,
static void saved_settings_changed_callback (CajaFile *file,
EelBackground *background);
-static void caja_file_background_receive_mateconf_changes (EelBackground *background);
+static void caja_file_background_receive_settings_changes (EelBackground *background);
static void caja_file_background_theme_changed (GSettings *settings,
const gchar *key,
@@ -72,7 +72,7 @@ caja_connect_desktop_background_to_file_metadata (CajaIconContainer *icon_contai
*/
caja_connect_background_to_file_metadata (GTK_WIDGET (icon_container), file, CAJA_DND_ACTION_SET_AS_FOLDER_BACKGROUND);
- caja_file_background_receive_mateconf_changes (background);
+ caja_file_background_receive_settings_changes (background);
}
static void
@@ -101,20 +101,20 @@ caja_file_background_get_default_settings (char **color,
}
-#define BG_PREFERENCES_DRAW_BACKGROUND "/desktop/mate/background/draw_background"
-#define BG_PREFERENCES_PRIMARY_COLOR "/desktop/mate/background/primary_color"
-#define BG_PREFERENCES_SECONDARY_COLOR "/desktop/mate/background/secondary_color"
-#define BG_PREFERENCES_COLOR_SHADING_TYPE "/desktop/mate/background/color_shading_type"
-#define BG_PREFERENCES_PICTURE_OPTIONS "/desktop/mate/background/picture_options"
-#define BG_PREFERENCES_PICTURE_OPACITY "/desktop/mate/background/picture_opacity"
-#define BG_PREFERENCES_PICTURE_FILENAME "/desktop/mate/background/picture_filename"
+#define BG_PREFERENCES_DRAW_BACKGROUND "draw-background"
+#define BG_PREFERENCES_PRIMARY_COLOR "primary-color"
+#define BG_PREFERENCES_SECONDARY_COLOR "secondary-color"
+#define BG_PREFERENCES_COLOR_SHADING_TYPE "color-shading-type"
+#define BG_PREFERENCES_PICTURE_OPTIONS "picture-options"
+#define BG_PREFERENCES_PICTURE_OPACITY "picture-opacity"
+#define BG_PREFERENCES_PICTURE_FILENAME "picture-filename"
static void
-read_color (MateConfClient *client, const char *key, GdkColor *color)
+read_color (const char *key, GdkColor *color)
{
gchar *tmp;
- tmp = mateconf_client_get_string (client, key, NULL);
+ tmp = g_settings_get_string (mate_background_preferences, key);
if (tmp != NULL)
{
@@ -135,7 +135,6 @@ caja_file_background_read_desktop_settings (char **color,
char **image,
EelBackgroundImagePlacement *placement)
{
- MateConfClient *client;
gboolean enabled;
GdkColor primary, secondary;
gchar *tmp, *filename;
@@ -146,13 +145,11 @@ caja_file_background_read_desktop_settings (char **color,
filename = NULL;
- client = mateconf_client_get_default ();
-
/* Get the image filename */
- enabled = mateconf_client_get_bool (client, BG_PREFERENCES_DRAW_BACKGROUND, NULL);
+ enabled = g_settings_get_boolean (mate_background_preferences, BG_PREFERENCES_DRAW_BACKGROUND);
if (enabled)
{
- tmp = mateconf_client_get_string (client, BG_PREFERENCES_PICTURE_FILENAME, NULL);
+ tmp = g_settings_get_string (mate_background_preferences, BG_PREFERENCES_PICTURE_FILENAME);
if (tmp != NULL)
{
if (g_utf8_validate (tmp, -1, NULL) && g_file_test (tmp, G_FILE_TEST_EXISTS))
@@ -182,7 +179,7 @@ caja_file_background_read_desktop_settings (char **color,
}
/* Get the placement */
- tmp = mateconf_client_get_string (client, BG_PREFERENCES_PICTURE_OPTIONS, NULL);
+ tmp = g_settings_get_string (mate_background_preferences, BG_PREFERENCES_PICTURE_OPTIONS);
if (tmp != NULL)
{
if (strcmp (tmp, "wallpaper") == 0)
@@ -228,7 +225,7 @@ caja_file_background_read_desktop_settings (char **color,
g_free (tmp);
/* Get the color */
- tmp = mateconf_client_get_string (client, BG_PREFERENCES_COLOR_SHADING_TYPE, NULL);
+ tmp = g_settings_get_string (mate_background_preferences, BG_PREFERENCES_COLOR_SHADING_TYPE);
if (tmp != NULL)
{
if (strcmp (tmp, "solid") == 0)
@@ -259,8 +256,8 @@ caja_file_background_read_desktop_settings (char **color,
}
g_free (tmp);
- read_color (client, BG_PREFERENCES_PRIMARY_COLOR, &primary);
- read_color (client, BG_PREFERENCES_SECONDARY_COLOR, &secondary);
+ read_color (BG_PREFERENCES_PRIMARY_COLOR, &primary);
+ read_color (BG_PREFERENCES_SECONDARY_COLOR, &secondary);
start_color = eel_gdk_rgb_to_color_spec (eel_gdk_color_to_rgb (&primary));
end_color = eel_gdk_rgb_to_color_spec (eel_gdk_color_to_rgb (&secondary));
@@ -278,38 +275,6 @@ caja_file_background_read_desktop_settings (char **color,
g_free (end_color);
}
-static void
-caja_file_background_write_desktop_default_settings (void)
-{
- /* We just unset all the mateconf keys so they go back to
- * defaults
- */
- MateConfClient *client;
- MateConfChangeSet *set;
-
- client = mateconf_client_get_default ();
- set = mateconf_change_set_new ();
-
- /* the list of keys here has to be kept in sync with libmate
- * schemas, which isn't the most maintainable thing ever.
- */
- mateconf_change_set_unset (set, "/desktop/mate/background/picture_options");
- mateconf_change_set_unset (set, "/desktop/mate/background/picture_filename");
- mateconf_change_set_unset (set, "/desktop/mate/background/picture_opacity");
- mateconf_change_set_unset (set, "/desktop/mate/background/primary_color");
- mateconf_change_set_unset (set, "/desktop/mate/background/secondary_color");
- mateconf_change_set_unset (set, "/desktop/mate/background/color_shading_type");
-
- /* this isn't atomic yet so it'll be a bit inefficient, but
- * someday it might be atomic.
- */
- mateconf_client_commit_change_set (client, set, FALSE, NULL);
-
- mateconf_change_set_unref (set);
-
- g_object_unref (G_OBJECT (client));
-}
-
static int
call_settings_changed (EelBackground *background)
{
@@ -319,61 +284,34 @@ call_settings_changed (EelBackground *background)
{
saved_settings_changed_callback (file, background);
}
- g_object_set_data (G_OBJECT (background), "desktop_mateconf_notification_timeout", GUINT_TO_POINTER (0));
return FALSE;
}
static void
-desktop_background_destroyed_callback (EelBackground *background, void *georgeWBush)
+desktop_background_settings_notify_cb (GSettings *settings, gchar *key, gpointer data)
{
- guint notification_id;
- guint notification_timeout_id;
+ EelBackground *background;
- notification_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (background), "desktop_mateconf_notification"));
- mateconf_client_notify_remove (caja_mateconf_client, notification_id);
+ background = EEL_BACKGROUND (data);
- notification_timeout_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (background), "desktop_mateconf_notification_timeout"));
- if (notification_timeout_id != 0)
- {
- g_source_remove (notification_timeout_id);
- }
+ call_settings_changed (background);
}
static void
-desktop_background_mateconf_notify_cb (MateConfClient *client, guint notification_id, MateConfEntry *entry, gpointer data)
+desktop_background_destroyed_callback (EelBackground *background, void *georgeWBush)
{
- EelBackground *background;
- guint notification_timeout_id;
-
- background = EEL_BACKGROUND (data);
-
- notification_timeout_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (background), "desktop_mateconf_notification_timeout"));
-
- if (strcmp (entry->key, "/desktop/mate/background/stamp") == 0)
- {
- if (notification_timeout_id != 0)
- g_source_remove (notification_timeout_id);
-
- call_settings_changed (background);
- }
- else if (notification_timeout_id == 0)
- {
- notification_timeout_id = g_timeout_add (300, (GSourceFunc) call_settings_changed, background);
-
- g_object_set_data (G_OBJECT (background), "desktop_mateconf_notification_timeout", GUINT_TO_POINTER (notification_timeout_id));
- }
+ g_signal_handlers_disconnect_by_func(mate_background_preferences,
+ G_CALLBACK (desktop_background_settings_notify_cb),
+ background);
}
static void
-caja_file_background_receive_mateconf_changes (EelBackground *background)
+caja_file_background_receive_settings_changes (EelBackground *background)
{
- guint notification_id;
-
- notification_id = mateconf_client_notify_add (caja_mateconf_client,
- "/desktop/mate/background", desktop_background_mateconf_notify_cb, background,
- NULL, NULL);
-
- g_object_set_data (G_OBJECT (background), "desktop_mateconf_notification", GUINT_TO_POINTER (notification_id));
+ g_signal_connect (mate_background_preferences,
+ "changed",
+ G_CALLBACK (desktop_background_settings_notify_cb),
+ background);
g_signal_connect (background, "destroy",
G_CALLBACK (desktop_background_destroyed_callback), NULL);
@@ -418,7 +356,7 @@ background_changed_callback (EelBackground *background,
if (eel_background_is_desktop (background))
{
- eel_background_save_to_mateconf (background);
+ eel_background_save_to_settings (background);
}
else
{
@@ -575,11 +513,7 @@ background_reset_callback (EelBackground *background,
char *color;
char *image;
- if (eel_background_is_desktop (background))
- {
- caja_file_background_write_desktop_default_settings ();
- }
- else
+ if (!eel_background_is_desktop (background))
{
/* Block the other handler while we are writing metadata so it doesn't
* try to change the background.