diff -crB nautilus-2.32.2.1_orig/libnautilus-private/apps_nautilus_preferences.schemas.in nautilus-2.32.2.1/libnautilus-private/apps_nautilus_preferences.schemas.in *** nautilus-2.32.2.1_orig/libnautilus-private/apps_nautilus_preferences.schemas.in 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/libnautilus-private/apps_nautilus_preferences.schemas.in 2011-03-14 13:11:49.582960262 +0000 *************** *** 231,238 **** ! /schemas/apps/nautilus/preferences/confirm_trash ! /apps/nautilus/preferences/confirm_trash nautilus bool true --- 231,238 ---- ! /schemas/apps/nautilus/preferences/confirm_delete ! /apps/nautilus/preferences/confirm_delete nautilus bool true *************** *** 240,246 **** Whether to ask for confirmation when deleting files, or emptying Trash If set to true, then Nautilus will ask for confirmation when ! you attempt to delete files, or empty the Trash. --- 240,262 ---- Whether to ask for confirmation when deleting files, or emptying Trash If set to true, then Nautilus will ask for confirmation when ! you attempt to delete files, or empty the Trash. No confirmation will be asked ! for moving files to Trash bin. ! ! ! ! ! ! /schemas/apps/nautilus/preferences/confirm_movetotrash ! /apps/nautilus/preferences/confirm_movetotrash ! nautilus ! bool ! false ! ! Whether to ask for confirmation when moving files to the Trash bin ! ! If set to true, then Nautilus will ask for confirmation when ! you attempt to move items to the Trash bin. diff -crB nautilus-2.32.2.1_orig/libnautilus-private/nautilus-file-operations.c nautilus-2.32.2.1/libnautilus-private/nautilus-file-operations.c *** nautilus-2.32.2.1_orig/libnautilus-private/nautilus-file-operations.c 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/libnautilus-private/nautilus-file-operations.c 2011-03-14 13:11:49.582960262 +0000 *************** *** 68,74 **** #include "nautilus-file-utilities.h" #include "nautilus-file-conflict-dialog.h" ! static gboolean confirm_trash_auto_value; /* TODO: TESTING!!! */ --- 68,75 ---- #include "nautilus-file-utilities.h" #include "nautilus-file-conflict-dialog.h" ! static gboolean confirm_delete_auto_value; ! static gboolean confirm_movetotrash_auto_value; /* TODO: TESTING!!! */ *************** *** 1012,1019 **** static gboolean setup_autos = FALSE; if (!setup_autos) { setup_autos = TRUE; ! eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_TRASH, ! &confirm_trash_auto_value); } } --- 1013,1023 ---- static gboolean setup_autos = FALSE; if (!setup_autos) { setup_autos = TRUE; ! eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_DELETE, ! &confirm_delete_auto_value); ! eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH, ! &confirm_movetotrash_auto_value); ! } } *************** *** 1288,1294 **** int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_trash_auto_value) { return TRUE; } --- 1292,1298 ---- int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_delete_auto_value) { return TRUE; } *************** *** 1319,1331 **** } static gboolean confirm_empty_trash (CommonJob *job) { char *prompt; int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_trash_auto_value) { return TRUE; } --- 1323,1374 ---- } static gboolean + confirm_trash (CommonJob *job, + GList *files) + { + char *prompt; + int file_count; + int response; + + /* Just Say Yes if the preference says not to confirm. */ + if (!confirm_movetotrash_auto_value) { + return TRUE; + } + + file_count = g_list_length (files); + g_assert (file_count > 0); + + if (file_count == 1) { + prompt = f (_("Are you sure you want to trash \"%B\"?"), + files->data); + } else { + prompt = f (ngettext("Are you sure you want to trash " + "the %'d selected item?", + "Are you sure you want to trash " + "the %'d selected items?", + file_count), + file_count); + } + + response = run_warning (job, + prompt, + NULL, + NULL, + FALSE, + GTK_STOCK_CANCEL, GTK_STOCK_DELETE, + NULL); + + return (response == 1); + } + + static gboolean confirm_empty_trash (CommonJob *job) { char *prompt; int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_delete_auto_value) { return TRUE; } *************** *** 1351,1357 **** int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_trash_auto_value) { return TRUE; } --- 1394,1400 ---- int response; /* Just Say Yes if the preference says not to confirm. */ ! if (!confirm_delete_auto_value) { return TRUE; } *************** *** 1862,1867 **** --- 1905,1911 ---- GFile *file; gboolean confirmed; CommonJob *common; + gboolean must_confirm_trash; gboolean must_confirm_delete_in_trash; gboolean must_confirm_delete; int files_skipped; *************** *** 1874,1879 **** --- 1918,1924 ---- to_trash_files = NULL; to_delete_files = NULL; + must_confirm_trash = FALSE; must_confirm_delete_in_trash = FALSE; must_confirm_delete = FALSE; files_skipped = 0; *************** *** 1889,1894 **** --- 1934,1940 ---- to_delete_files = g_list_prepend (to_delete_files, file); } else { if (job->try_trash) { + must_confirm_trash = TRUE; to_trash_files = g_list_prepend (to_trash_files, file); } else { must_confirm_delete = TRUE; *************** *** 1914,1921 **** if (to_trash_files != NULL) { to_trash_files = g_list_reverse (to_trash_files); ! ! trash_files (common, to_trash_files, &files_skipped); } g_list_free (to_trash_files); --- 1960,1974 ---- if (to_trash_files != NULL) { to_trash_files = g_list_reverse (to_trash_files); ! confirmed = TRUE; ! if(must_confirm_trash) { ! confirmed = confirm_trash (common, to_trash_files); ! } ! if (confirmed) { ! trash_files (common, to_trash_files, &files_skipped); ! } else { ! job->user_cancel = TRUE; ! } } g_list_free (to_trash_files); Only in nautilus-2.32.2.1/libnautilus-private: nautilus-file-operations.c.orig diff -crB nautilus-2.32.2.1_orig/libnautilus-private/nautilus-global-preferences.c nautilus-2.32.2.1/libnautilus-private/nautilus-global-preferences.c *** nautilus-2.32.2.1_orig/libnautilus-private/nautilus-global-preferences.c 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/libnautilus-private/nautilus-global-preferences.c 2011-03-14 13:11:49.586294154 +0000 *************** *** 248,254 **** PREFERENCE_BOOLEAN, GINT_TO_POINTER (FALSE) }, ! { NAUTILUS_PREFERENCES_CONFIRM_TRASH, PREFERENCE_BOOLEAN, GINT_TO_POINTER (TRUE) }, --- 248,258 ---- PREFERENCE_BOOLEAN, GINT_TO_POINTER (FALSE) }, ! { NAUTILUS_PREFERENCES_CONFIRM_DELETE, ! PREFERENCE_BOOLEAN, ! GINT_TO_POINTER (TRUE) ! }, ! { NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH, PREFERENCE_BOOLEAN, GINT_TO_POINTER (TRUE) }, diff -crB nautilus-2.32.2.1_orig/libnautilus-private/nautilus-global-preferences.h nautilus-2.32.2.1/libnautilus-private/nautilus-global-preferences.h *** nautilus-2.32.2.1_orig/libnautilus-private/nautilus-global-preferences.h 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/libnautilus-private/nautilus-global-preferences.h 2011-03-14 13:11:49.586294154 +0000 *************** *** 60,66 **** #define NAUTILUS_PREFERENCES_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER "preferences/media_autorun_x_content_open_folder" /* Trash options */ ! #define NAUTILUS_PREFERENCES_CONFIRM_TRASH "preferences/confirm_trash" #define NAUTILUS_PREFERENCES_ENABLE_DELETE "preferences/enable_delete" /* Desktop options */ --- 60,67 ---- #define NAUTILUS_PREFERENCES_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER "preferences/media_autorun_x_content_open_folder" /* Trash options */ ! #define NAUTILUS_PREFERENCES_CONFIRM_DELETE "preferences/confirm_delete" ! #define NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH "preferences/confirm_movetotrash" #define NAUTILUS_PREFERENCES_ENABLE_DELETE "preferences/enable_delete" /* Desktop options */ Only in nautilus-2.32.2.1/libnautilus-private: nautilus-global-preferences.h.orig diff -crB nautilus-2.32.2.1_orig/src/file-manager/fm-directory-view.c nautilus-2.32.2.1/src/file-manager/fm-directory-view.c *** nautilus-2.32.2.1_orig/src/file-manager/fm-directory-view.c 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/src/file-manager/fm-directory-view.c 2011-03-14 13:11:49.589628046 +0000 *************** *** 152,158 **** 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; --- 152,159 ---- static GdkAtom copied_files_atom; static gboolean show_delete_command_auto_value; ! static gboolean confirm_delete_auto_value; ! static gboolean confirm_movetotrash_auto_value; static char *scripts_directory_uri; static int scripts_directory_uri_length; *************** *** 1930,1937 **** 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); } --- 1931,1940 ---- if (!setup_autos) { setup_autos = TRUE; ! eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_DELETE, ! &confirm_delete_auto_value); ! eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH, ! &confirm_movetotrash_auto_value); eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ENABLE_DELETE, &show_delete_command_auto_value); } *************** *** 1988,1994 **** 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); --- 1991,1999 ---- gtk_widget_show (GTK_WIDGET (view)); ! eel_preferences_add_callback (NAUTILUS_PREFERENCES_CONFIRM_DELETE, ! schedule_update_menus_callback, view); ! eel_preferences_add_callback (NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH, schedule_update_menus_callback, view); eel_preferences_add_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE, schedule_update_menus_callback, view); *************** *** 2104,2110 **** 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); --- 2109,2117 ---- view = FM_DIRECTORY_VIEW (object); ! eel_preferences_remove_callback (NAUTILUS_PREFERENCES_CONFIRM_DELETE, ! schedule_update_menus_callback, view); ! eel_preferences_remove_callback (NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH, schedule_update_menus_callback, view); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE, schedule_update_menus_callback, view); Only in nautilus-2.32.2.1/src/file-manager: fm-directory-view.c.orig diff -crB nautilus-2.32.2.1_orig/src/nautilus-file-management-properties.c nautilus-2.32.2.1/src/nautilus-file-management-properties.c *** nautilus-2.32.2.1_orig/src/nautilus-file-management-properties.c 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/src/nautilus-file-management-properties.c 2011-03-14 13:11:49.589628046 +0000 *************** *** 63,69 **** #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALL_COLUMNS_SAME_WIDTH "all_columns_same_width_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_BROWSER_WIDGET "always_use_browser_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_LOCATION_ENTRY_WIDGET "always_use_location_entry_checkbutton" ! #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_CONFIRM_WIDGET "trash_confirm_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET "trash_delete_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_OPEN_NEW_WINDOW_WIDGET "new_window_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET "hidden_files_checkbutton" --- 63,70 ---- #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALL_COLUMNS_SAME_WIDTH "all_columns_same_width_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_BROWSER_WIDGET "always_use_browser_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_ALWAYS_USE_LOCATION_ENTRY_WIDGET "always_use_location_entry_checkbutton" ! #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DELETE_CONFIRM_WIDGET "delete_confirm_checkbutton" ! #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MOVETOTRASH_CONFIRM_WIDGET "trash_confirm_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET "trash_delete_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_OPEN_NEW_WINDOW_WIDGET "new_window_checkbutton" #define NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SHOW_HIDDEN_WIDGET "hidden_files_checkbutton" *************** *** 716,723 **** NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER); eel_preferences_builder_connect_bool (builder, ! 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); --- 717,727 ---- NAUTILUS_PREFERENCES_MEDIA_AUTORUN_NEVER); eel_preferences_builder_connect_bool (builder, ! NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DELETE_CONFIRM_WIDGET, ! NAUTILUS_PREFERENCES_CONFIRM_DELETE); ! eel_preferences_builder_connect_bool (builder, ! NAUTILUS_FILE_MANAGEMENT_PROPERTIES_MOVETOTRASH_CONFIRM_WIDGET, ! NAUTILUS_PREFERENCES_CONFIRM_MOVETOTRASH); eel_preferences_builder_connect_bool (builder, NAUTILUS_FILE_MANAGEMENT_PROPERTIES_TRASH_DELETE_WIDGET, NAUTILUS_PREFERENCES_ENABLE_DELETE); Only in nautilus-2.32.2.1/src: nautilus-file-management-properties.c.orig diff -crB nautilus-2.32.2.1_orig/src/nautilus-file-management-properties.ui nautilus-2.32.2.1/src/nautilus-file-management-properties.ui *** nautilus-2.32.2.1_orig/src/nautilus-file-management-properties.ui 2010-12-28 15:54:38.000000000 +0000 --- nautilus-2.32.2.1/src/nautilus-file-management-properties.ui 2011-03-14 13:11:49.592961938 +0000 *************** *** 1349,1361 **** False 6 ! True True Ask before _emptying the Trash or deleting files True GTK_RELIEF_NORMAL True False False True --- 1349,1379 ---- False 6 ! True True Ask before _emptying the Trash or deleting files True GTK_RELIEF_NORMAL True + False + False + True + + + 0 + False + False + + + + + True + True + Ask before moving items to the _Trash bin + True + GTK_RELIEF_NORMAL + True False False True Only in nautilus-2.32.2.1/src: nautilus-file-management-properties.ui.orig