From eac2e3cc7d9edbfe42aa571cf4e530cf9d67ee2c Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 21 Jun 2009 13:24:22 +0200 Subject: new thunar with Ability_to_disable_trash_on_Thunar.patch --- .../Ability_to_disable_trash_on_Thunar.patch | 170 +++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 thunar-notrash/Ability_to_disable_trash_on_Thunar.patch (limited to 'thunar-notrash/Ability_to_disable_trash_on_Thunar.patch') diff --git a/thunar-notrash/Ability_to_disable_trash_on_Thunar.patch b/thunar-notrash/Ability_to_disable_trash_on_Thunar.patch new file mode 100644 index 0000000..50e992e --- /dev/null +++ b/thunar-notrash/Ability_to_disable_trash_on_Thunar.patch @@ -0,0 +1,170 @@ +diff -ur src/Thunar-1.0.1-orig/thunar/thunar-application.c src/Thunar-1.0.1/thunar/thunar-application.c +--- src/Thunar-1.0.1-orig/thunar/thunar-application.c 2009-01-12 21:38:48.000000000 +0100 ++++ src/Thunar-1.0.1/thunar/thunar-application.c 2009-06-21 02:07:38.000000000 +0200 +@@ -1328,13 +1328,20 @@ + gchar *message; + guint n_path_list = 0; + gint response; ++ gboolean isTrashEnabled; + + _thunar_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent)); + _thunar_return_if_fail (THUNAR_IS_APPLICATION (application)); +- ++ + /* check if we should permanently delete the files (user holds shift) */ + permanently = (gtk_get_current_event_state (&state) && (state & GDK_SHIFT_MASK) != 0); + ++ g_object_get (G_OBJECT (application->preferences), "misc-enable-trash", &isTrashEnabled, NULL); ++ if (!isTrashEnabled) ++ { ++ permanently = TRUE; ++ } ++ + /* determine the paths for the files */ + for (lp = g_list_last (file_list); lp != NULL; lp = lp->prev, ++n_path_list) + { +@@ -1354,8 +1361,8 @@ + if (G_UNLIKELY (permanently)) + { + /* parse the parent pointer */ +- screen = thunar_util_parse_parent (parent, &window); +- ++ screen = thunar_util_parse_parent (parent, &window); ++ + /* generate the question to confirm the delete operation */ + if (G_LIKELY (n_path_list == 1)) + { +diff -ur src/Thunar-1.0.1-orig/thunar/thunar-preferences-dialog.c src/Thunar-1.0.1/thunar/thunar-preferences-dialog.c +--- src/Thunar-1.0.1-orig/thunar/thunar-preferences-dialog.c 2009-01-12 21:38:48.000000000 +0100 ++++ src/Thunar-1.0.1/thunar/thunar-preferences-dialog.c 2009-06-21 02:19:11.000000000 +0200 +@@ -373,7 +373,7 @@ + gtk_frame_set_label_widget (GTK_FRAME (frame), label); + gtk_widget_show (label); + +- table = gtk_table_new (2, 2, FALSE); ++ table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); +@@ -418,7 +418,7 @@ + gtk_frame_set_label_widget (GTK_FRAME (frame), label); + gtk_widget_show (label); + +- table = gtk_table_new (2, 2, FALSE); ++ table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); +@@ -573,7 +573,7 @@ + gtk_frame_set_label_widget (GTK_FRAME (frame), label); + gtk_widget_show (label); + +- table = gtk_table_new (2, 2, FALSE); ++ table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); +@@ -591,6 +591,13 @@ + gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Ask everytime")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Apply to Folder Only")); + gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Apply to Folder and Contents")); ++ ++ button = gtk_check_button_new_with_mnemonic (_("Move items to Trash when on _delete.")); ++ exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-enable-trash", G_OBJECT (button), "active"); ++ thunar_gtk_widget_set_tooltip (button, _( "By default, items are sent to the Trash on delete. By disabling this option, items will be removed on delete and will be lost forever. (DANGEROUS)" ) ); ++ gtk_table_attach (GTK_TABLE (table), button, 0,1,2,3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); ++ gtk_widget_show (button); ++ + #if !GTK_CHECK_VERSION(2,9,0) + g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (g_object_notify), "active"); + #endif +@@ -608,7 +615,7 @@ + gtk_frame_set_label_widget (GTK_FRAME (frame), label); + gtk_widget_show (label); + +- table = gtk_table_new (2, 2, FALSE); ++ table = gtk_table_new (3, 2, FALSE); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_container_set_border_width (GTK_CONTAINER (table), 12); +diff -ur src/Thunar-1.0.1-orig/thunar/thunar-preferences.c src/Thunar-1.0.1/thunar/thunar-preferences.c +--- src/Thunar-1.0.1-orig/thunar/thunar-preferences.c 2009-01-12 21:38:48.000000000 +0100 ++++ src/Thunar-1.0.1/thunar/thunar-preferences.c 2009-06-21 02:07:38.000000000 +0200 +@@ -71,6 +71,7 @@ + PROP_MISC_VOLUME_MANAGEMENT, + PROP_MISC_CASE_SENSITIVE, + PROP_MISC_DATE_STYLE, ++ PROP_MISC_ENABLE_TRASH, + PROP_MISC_FOLDERS_FIRST, + PROP_MISC_HORIZONTAL_WHEEL_NAVIGATES, + PROP_MISC_RECURSIVE_PERMISSIONS, +@@ -664,6 +665,19 @@ + THUNAR_TYPE_ICON_SIZE, + THUNAR_ICON_SIZE_SMALLEST, + EXO_PARAM_READWRITE)); ++ ++ /** ++ * ThunarPreferences:misc-enable-trash: ++ * ++ * If trash is disabled, files will be deleted permanently ++ **/ ++ g_object_class_install_property (gobject_class, ++ PROP_MISC_ENABLE_TRASH, ++ g_param_spec_boolean ("misc-enable-trash", ++ "misc-enable-trash", ++ "misc-enable-trash", ++ TRUE, ++ EXO_PARAM_READWRITE)); + } + + +diff -ur src/Thunar-1.0.1-orig/thunar/thunar-shortcuts-model.c src/Thunar-1.0.1/thunar/thunar-shortcuts-model.c +--- src/Thunar-1.0.1-orig/thunar/thunar-shortcuts-model.c 2009-01-12 21:38:48.000000000 +0100 ++++ src/Thunar-1.0.1/thunar/thunar-shortcuts-model.c 2009-06-21 12:25:04.000000000 +0200 +@@ -34,6 +34,7 @@ + #include + #endif + ++#include + #include + #include + #include +@@ -63,7 +64,6 @@ + } ThunarShortcutType; + + +- + static void thunar_shortcuts_model_class_init (ThunarShortcutsModelClass *klass); + static void thunar_shortcuts_model_tree_model_init (GtkTreeModelIface *iface); + static void thunar_shortcuts_model_drag_source_init (GtkTreeDragSourceIface *iface); +@@ -278,6 +278,8 @@ + guint n; + gchar *desktop_path = NULL; + guint desktop_index; ++ gboolean isTrashEnabled; ++ + + #ifndef NDEBUG + model->stamp = g_random_int (); +@@ -292,6 +294,8 @@ + system_path_list[0] = thunar_vfs_path_get_for_home (); + system_path_list[1] = thunar_vfs_path_get_for_trash (); + ++ g_object_get (G_OBJECT (thunar_preferences_get ()), "misc-enable-trash", &isTrashEnabled, NULL); ++ + #if GLIB_CHECK_VERSION(2,14,0) + desktop_path = g_strdup (g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP)); + #else /* GLIB_CHECK_VERSION(2,14,0) */ +@@ -323,6 +327,12 @@ + thunar_vfs_path_unref (system_path_list[n]); + continue; + } ++ /* we exclude the trash */ ++ if (n == 1 && !isTrashEnabled) ++ { ++ thunar_vfs_path_unref (system_path_list[n]); ++ continue; ++ } + #endif + + /* determine the file for the path */ -- cgit v1.2.3-24-g4f1b