diff options
Diffstat (limited to 'thunar-notrash')
-rw-r--r-- | thunar-notrash/Ability_to_disable_trash_on_Thunar.patch | 170 | ||||
-rw-r--r-- | thunar-notrash/PKGBUILD | 35 | ||||
-rw-r--r-- | thunar-notrash/thunar-notrash.install | 14 |
3 files changed, 219 insertions, 0 deletions
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 <locale.h> + #endif + ++#include <thunar/thunar-preferences.h> + #include <thunar/thunar-file.h> + #include <thunar/thunar-shortcuts-model.h> + #include <thunar/thunar-private.h> +@@ -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 */ diff --git a/thunar-notrash/PKGBUILD b/thunar-notrash/PKGBUILD new file mode 100644 index 0000000..a0f7f13 --- /dev/null +++ b/thunar-notrash/PKGBUILD @@ -0,0 +1,35 @@ +# $Id$ +# Maintainer: tobias <tobias funnychar archlinux.org> +# Contributor: Andrew Simmons <andrew.simmons@gmail.com> + +pkgname=thunar-notrash +pkgver=1.0.1 +pkgrel=1 +pkgdesc="new modern file manager for Xfce with patch to disable trash" +arch=(i686 x86_64) +license=('GPL2' 'LGPL2') +url="http://thunar.xfce.org" +groups=('xfce4') +depends=('desktop-file-utils' 'libexif>=0.6.17' 'xfce4-panel>=4.6.1' 'hicolor-icon-theme' 'fam') +makedepends=('intltool' 'pkgconfig') +optdepends=('gamin: a fam replacement to make thunar monitor changes to files on the fly') +options=('!libtool') +install=${pkgname}.install +source=(http://www.xfce.org/archive/xfce-4.6.1/src/Thunar-${pkgver}.tar.bz2 Ability_to_disable_trash_on_Thunar.patch +) + +build() { + cd ${srcdir}/Thunar-${pkgver} + patch -p2 < $srcdir/Ability_to_disable_trash_on_Thunar.patch + ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ + --localstatedir=/var --disable-static \ + --disable-gnome-thumbnailers --enable-exif --enable-pcre + make || return 1 + make DESTDIR=${pkgdir} install || return 1 + sed -i 's:x-directory/gnome-default-handler;::' \ + ${pkgdir}/usr/share/applications/Thunar-folder-handler.desktop +} +md5sums=('218373aa45d74b6ba8c69c4d5af3bb19' + '55816882bbeac5bb1153f0b195a220d7') +sha256sums=('7a2b6b493463756bbc9c54144fab2f2163bc84f0896b4c06fd225d11025a210d' + 'e235ac3f5559d685051bb747b348238a925de32653e8e8c9b8b89c1e0bb56a67') diff --git a/thunar-notrash/thunar-notrash.install b/thunar-notrash/thunar-notrash.install new file mode 100644 index 0000000..28fdb48 --- /dev/null +++ b/thunar-notrash/thunar-notrash.install @@ -0,0 +1,14 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + |