summarylogtreecommitdiffstats
path: root/notrash.patch
blob: 95238449aa96441f92d9d83f22d09aae6e1432d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
diff -ru thunar-4.18.4.orig/thunar/thunar-application.c thunar-4.18.4/thunar/thunar-application.c
--- thunar-4.18.4.orig/thunar/thunar-application.c	2023-04-12 23:07:14.000000000 +0100
+++ thunar-4.18.4/thunar/thunar-application.c	2023-04-12 23:14:47.000000000 +0100
@@ -2370,9 +2370,12 @@
   guint      n_path_list = 0;
   gint       response;
   gboolean   operation_canceled = FALSE;
+  gboolean   is_trash_enabled = TRUE;
 
   _thunar_return_val_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent), TRUE);
   _thunar_return_val_if_fail (THUNAR_IS_APPLICATION (application), TRUE);
+  g_object_get (G_OBJECT (application->preferences), "misc-enable-trash", &is_trash_enabled, NULL);
+  if (!is_trash_enabled) permanently = TRUE;
 
   /* determine the paths for the files */
   for (lp = g_list_last (file_list); lp != NULL; lp = lp->prev, ++n_path_list)
diff -rudp thunar-4.16.10.orig/thunar/thunar-preferences.c thunar-4.16.10/thunar/thunar-preferences.c
--- thunar-4.16.10.orig/thunar/thunar-preferences.c	2021-10-15 22:57:55.000000000 -0400
+++ thunar-4.16.10/thunar/thunar-preferences.c	2021-10-15 23:06:04.000000000 -0400
@@ -78,6 +78,7 @@ enum
   PROP_MISC_CASE_SENSITIVE,
   PROP_MISC_DATE_STYLE,
   PROP_MISC_DATE_CUSTOM_STYLE,
+  PROP_MISC_ENABLE_TRASH,
   PROP_EXEC_SHELL_SCRIPTS_BY_DEFAULT,
   PROP_MISC_FOLDERS_FIRST,
   PROP_MISC_FULL_PATH_IN_TITLE,
@@ -870,6 +871,18 @@ thunar_preferences_class_init (ThunarPre
                          THUNAR_ICON_SIZE_16,
                          EXO_PARAM_READWRITE);
 
+  /**
+   * ThunarPreferences:misc-enable-trash:
+   *
+   * If trash is disabled, files will be deleted permanently.
+   **/
+  preferences_props[PROP_MISC_ENABLE_TRASH] =
+      g_param_spec_boolean ("misc-enable-trash",
+                            "misc-enable-trash",
+                            NULL,
+                            TRUE,
+                            EXO_PARAM_READWRITE);
+
   /* install all properties */
   g_object_class_install_properties (gobject_class, N_PROPERTIES, preferences_props);
 }
diff -rudp thunar-4.16.10.orig/thunar/thunar-preferences-dialog.c thunar-4.16.10/thunar/thunar-preferences-dialog.c
--- thunar-4.16.10.orig/thunar/thunar-preferences-dialog.c	2021-10-15 22:57:55.000000000 -0400
+++ thunar-4.16.10/thunar/thunar-preferences-dialog.c	2021-10-15 23:19:19.000000000 -0400
@@ -856,6 +856,12 @@ thunar_preferences_dialog_init (ThunarPr
   thunar_gtk_label_set_a11y_relation (GTK_LABEL (label), combo);
   gtk_widget_show (combo);
 
+  button = gtk_check_button_new_with_mnemonic (_("Move items to Trash on _deletion."));
+  g_object_bind_property (G_OBJECT (dialog->preferences), "misc-enable-trash", G_OBJECT (button), "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+  gtk_widget_set_tooltip_text (button, _( "By default, items are sent to the Trash on deletion. By disabling this option, items will be removed on deletion and will be lost forever. (DANGEROUS)"));
+  gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 1, 1);
+  gtk_widget_show (button);
+
   frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL);
   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
   gtk_widget_show (frame);
diff -rudp thunar-4.16.10.orig/thunar/thunar-shortcuts-model.c thunar-4.16.10/thunar/thunar-shortcuts-model.c
--- thunar-4.16.10.orig/thunar/thunar-shortcuts-model.c	2021-10-15 22:57:55.000000000 -0400
+++ thunar-4.16.10/thunar/thunar-shortcuts-model.c	2021-10-15 23:01:06.000000000 -0400
@@ -1068,6 +1068,8 @@ thunar_shortcuts_model_shortcut_places (
   GFile          *desktop;
   GFile          *trash;
   ThunarFile     *file;
+  gboolean	  isTrashEnabled;
+  ThunarPreferences *preferences;
 
   /* add the places heading */
   shortcut = g_slice_new0 (ThunarShortcut);
@@ -1110,9 +1112,13 @@ thunar_shortcuts_model_shortcut_places (
     }
   g_object_unref (desktop);
   g_object_unref (home);
+  
+  preferences = thunar_preferences_get();
+  g_object_get (G_OBJECT (preferences), "misc-enable-trash", &isTrashEnabled, NULL);
+  g_object_unref(preferences);
 
   /* append the trash icon if the trash is supported */
-  if (thunar_g_vfs_is_uri_scheme_supported ("trash"))
+  if (isTrashEnabled && thunar_g_vfs_is_uri_scheme_supported ("trash"))
     {
       trash = thunar_g_file_new_for_trash ();
       file = thunar_file_get (trash, NULL);
diff -rudp thunar-4.16.10.orig/thunar/thunar-tree-model.c thunar-4.16.10/thunar/thunar-tree-model.c
--- thunar-4.16.10.orig/thunar/thunar-tree-model.c	2021-10-15 22:57:55.000000000 -0400
+++ thunar-4.16.10/thunar/thunar-tree-model.c	2021-10-15 23:01:06.000000000 -0400
@@ -288,12 +288,18 @@ thunar_tree_model_init (ThunarTreeModel
   GList               *devices;
   GList               *lp;
   GNode               *node;
-
+  ThunarPreferences   *preferences;
+  gboolean            isTrashEnabled;
+  
   /* generate a unique stamp if we're in debug mode */
 #ifndef NDEBUG
   model->stamp = g_random_int ();
 #endif
 
+  preferences = thunar_preferences_get();
+  g_object_get (G_OBJECT (preferences), "misc-enable-trash", &isTrashEnabled, NULL);
+  g_object_unref(preferences);
+
   /* initialize the model data */
   model->sort_case_sensitive = TRUE;
   model->visible_func = (ThunarTreeModelVisibleFunc) (void (*)(void)) exo_noop_true;
@@ -327,7 +333,7 @@ thunar_tree_model_init (ThunarTreeModel
   system_paths = g_list_append (system_paths, g_object_ref (home));
 
   /* append the trash icon if the trash is supported */
-  if (thunar_g_vfs_is_uri_scheme_supported ("trash"))
+  if (isTrashEnabled && thunar_g_vfs_is_uri_scheme_supported ("trash"))
     system_paths = g_list_append (system_paths, thunar_g_file_new_for_trash ());
 
   /* append the root file system */