[nautilus] Convert confirm-trash preference to gsettings



commit 85cd2e45893a561ebd739c9bca595a1ef9a4f136
Author: Alexander Larsson <alexl redhat com>
Date:   Wed Jul 21 16:29:16 2010 +0200

    Convert confirm-trash preference to gsettings

 libnautilus-private/nautilus-file-operations.c    |   38 +++++++++-----------
 libnautilus-private/nautilus-global-preferences.c |    4 --
 libnautilus-private/nautilus-global-preferences.h |    2 +-
 src/file-manager/fm-directory-view.c              |    7 ----
 src/nautilus-file-management-properties.c         |   33 +++++++++++-------
 5 files changed, 38 insertions(+), 46 deletions(-)
---
diff --git a/libnautilus-private/nautilus-file-operations.c b/libnautilus-private/nautilus-file-operations.c
index caee375..9ef1819 100644
--- a/libnautilus-private/nautilus-file-operations.c
+++ b/libnautilus-private/nautilus-file-operations.c
@@ -68,8 +68,6 @@
 #include "nautilus-file-utilities.h"
 #include "nautilus-file-conflict-dialog.h"
 
-static gboolean confirm_trash_auto_value;
-
 /* TODO: TESTING!!! */
 
 typedef struct {
@@ -1006,17 +1004,6 @@ should_skip_readdir_error (CommonJob *common,
 	return FALSE;
 }
 
-static void
-setup_autos (void)
-{
-	static gboolean setup_autos = FALSE;
-	if (!setup_autos) {
-		setup_autos = TRUE;
-		eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
-						  &confirm_trash_auto_value);
-	}
-}
-
 static gboolean
 can_delete_without_confirm (GFile *file)
 {
@@ -1279,6 +1266,19 @@ job_aborted (CommonJob *job)
 	return g_cancellable_is_cancelled (job->cancellable);
 }
 
+/* Since this happens on a thread we can't use the global prefs object */
+static gboolean
+should_confirm_trash (void)
+{
+	GSettings *prefs;
+	gboolean confirm_trash;
+
+	prefs = g_settings_new ("org.gnome.nautilus.preferences");
+	confirm_trash = g_settings_get_boolean (prefs, NAUTILUS_PREFERENCES_CONFIRM_TRASH);
+	g_object_unref (prefs);
+	return confirm_trash;
+}
+
 static gboolean
 confirm_delete_from_trash (CommonJob *job,
 			   GList *files)
@@ -1288,7 +1288,7 @@ confirm_delete_from_trash (CommonJob *job,
 	int response;
 
 	/* Just Say Yes if the preference says not to confirm. */
-	if (!confirm_trash_auto_value) {
+	if (!should_confirm_trash ()) {
 		return TRUE;
 	}
 
@@ -1325,7 +1325,7 @@ confirm_empty_trash (CommonJob *job)
 	int response;
 
 	/* Just Say Yes if the preference says not to confirm. */
-	if (!confirm_trash_auto_value) {
+	if (!should_confirm_trash ()) {
 		return TRUE;
 	}
 
@@ -1353,7 +1353,7 @@ confirm_delete_directly (CommonJob *job,
 	int response;
 
 	/* Just Say Yes if the preference says not to confirm. */
-	if (!confirm_trash_auto_value) {
+	if (!should_confirm_trash ()) {
 		return TRUE;
 	}
 
@@ -1945,8 +1945,6 @@ trash_or_delete_internal (GList                  *files,
 {
 	DeleteJob *job;
 
-	setup_autos ();
-
 	/* TODO: special case desktop icon link files ... */
 
 	job = op_job_new (DeleteJob, parent_window);
@@ -6168,9 +6166,7 @@ nautilus_file_operations_empty_trash (GtkWidget *parent_view)
 	if (parent_view) {
 		parent_window = (GtkWindow *)gtk_widget_get_ancestor (parent_view, GTK_TYPE_WINDOW);
 	}
-	
-	setup_autos ();
-	
+
 	job = op_job_new (EmptyTrashJob, parent_window);
 	job->trash_dirs = g_list_prepend (job->trash_dirs,
 					  g_file_new_for_uri ("trash:"));
diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c
index ad1171a..30a7e27 100644
--- a/libnautilus-private/nautilus-global-preferences.c
+++ b/libnautilus-private/nautilus-global-preferences.c
@@ -248,10 +248,6 @@ static const PreferenceDefault preference_defaults[] = {
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (FALSE)
 	},
-	{ NAUTILUS_PREFERENCES_CONFIRM_TRASH,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (TRUE)
-	},
 	{ NAUTILUS_PREFERENCES_ENABLE_DELETE,
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (FALSE)
diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h
index 394df4f..95b4f30 100644
--- a/libnautilus-private/nautilus-global-preferences.h
+++ b/libnautilus-private/nautilus-global-preferences.h
@@ -58,7 +58,7 @@ G_BEGIN_DECLS
 #define NAUTILUS_PREFERENCES_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER "autorun-x-content-open-folder"
 
 /* Trash options */
-#define NAUTILUS_PREFERENCES_CONFIRM_TRASH			"preferences/confirm_trash"
+#define NAUTILUS_PREFERENCES_CONFIRM_TRASH			"confirm-trash"
 #define NAUTILUS_PREFERENCES_ENABLE_DELETE			"preferences/enable_delete"
 
 /* Desktop options */
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index a6fe51f..187be9f 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -152,7 +152,6 @@ static guint signals[LAST_SIGNAL];
 static GdkAtom copied_files_atom;
 
 static gboolean show_delete_command_auto_value;
-static gboolean confirm_trash_auto_value;
 
 static char *scripts_directory_uri;
 static int scripts_directory_uri_length;
@@ -1941,8 +1940,6 @@ fm_directory_view_init (FMDirectoryView *view)
 
 	if (!setup_autos) {
 		setup_autos = TRUE;
-		eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
-						  &confirm_trash_auto_value);
 		eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ENABLE_DELETE,
 						  &show_delete_command_auto_value);
 	}
@@ -1998,8 +1995,6 @@ fm_directory_view_init (FMDirectoryView *view)
 	
 	gtk_widget_show (GTK_WIDGET (view));
 	
-	eel_preferences_add_callback (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
-				      schedule_update_menus_callback, view);
 	eel_preferences_add_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE,
 				      schedule_update_menus_callback, view);
 	eel_preferences_add_callback (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
@@ -2114,8 +2109,6 @@ fm_directory_view_finalize (GObject *object)
 
 	view = FM_DIRECTORY_VIEW (object);
 
-	eel_preferences_remove_callback (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
-					 schedule_update_menus_callback, view);
 	eel_preferences_remove_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE,
 					 schedule_update_menus_callback, view);
 	eel_preferences_remove_callback (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
diff --git a/src/nautilus-file-management-properties.c b/src/nautilus-file-management-properties.c
index a3a6671..d4299d4 100644
--- a/src/nautilus-file-management-properties.c
+++ b/src/nautilus-file-management-properties.c
@@ -667,6 +667,17 @@ nautilus_file_management_properties_dialog_setup_media_page (GtkBuilder *builder
 	nautilus_file_management_properties_dialog_update_media_sensitivity (builder);
 }
 
+static void
+bind_builder_bool (GtkBuilder *builder,
+		   GSettings *settings,
+		   const char *widget_name,
+		   const char *prefs)
+{
+	g_settings_bind (settings, prefs,
+			 gtk_builder_get_object (builder, widget_name),
+			 "active", G_SETTINGS_BIND_DEFAULT);
+}
+
 static  void
 nautilus_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow *window)
 {
@@ -713,20 +724,16 @@ nautilus_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow
 						       NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_BROWSER_WIDGET,
 						       NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER);
 
-	g_settings_bind (nautilus_media_preferences,
-			 NAUTILUS_PREFERENCES_MEDIA_AUTOMOUNT_OPEN,
-			 gtk_builder_get_object (builder,
-						 NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTOMOUNT_OPEN),
-			 "active", G_SETTINGS_BIND_DEFAULT);
-	g_settings_bind (nautilus_media_preferences,
-			 NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER,
-			 gtk_builder_get_object (builder,
-						 NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTORUN_NEVER),
-			 "active", G_SETTINGS_BIND_DEFAULT);
+	bind_builder_bool (builder, nautilus_media_preferences,
+			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTOMOUNT_OPEN,
+			   NAUTILUS_PREFERENCES_MEDIA_AUTOMOUNT_OPEN);
+	bind_builder_bool (builder, nautilus_media_preferences,
+			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MEDIA_AUTORUN_NEVER,
+			   NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER);
 
-	eel_preferences_builder_connect_bool (builder,
-					      NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET,
-					      NAUTILUS_PREFERENCES_CONFIRM_TRASH);
+	bind_builder_bool (builder, nautilus_preferences,
+			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET,
+			   NAUTILUS_PREFERENCES_CONFIRM_TRASH);
 	eel_preferences_builder_connect_bool (builder,
 					      NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET,
 					      NAUTILUS_PREFERENCES_ENABLE_DELETE);



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