[nautilus] Use a delete action for backends that don't support trash
- From: William Jon McCann <mccann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] Use a delete action for backends that don't support trash
- Date: Wed, 11 Jul 2012 16:31:40 +0000 (UTC)
commit 382b59d06e86aac80cd46a9326eb342282a82561
Author: William Jon McCann <jmccann redhat com>
Date: Wed Jul 11 12:31:10 2012 -0400
Use a delete action for backends that don't support trash
src/nautilus-view.c | 35 +++++++++++++++++++++++++++++++----
1 files changed, 31 insertions(+), 4 deletions(-)
---
diff --git a/src/nautilus-view.c b/src/nautilus-view.c
index 9142983..841b644 100644
--- a/src/nautilus-view.c
+++ b/src/nautilus-view.c
@@ -8460,6 +8460,21 @@ can_delete_all (GList *files)
return TRUE;
}
+static gboolean
+can_trash_all (GList *files)
+{
+ NautilusFile *file;
+ GList *l;
+
+ for (l = files; l != NULL; l = l->next) {
+ file = l->data;
+ if (!nautilus_file_can_trash (file)) {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
static void
real_update_menus (NautilusView *view)
{
@@ -8471,6 +8486,7 @@ real_update_menus (NautilusView *view)
gboolean selection_contains_desktop_or_home_dir;
gboolean can_create_files;
gboolean can_delete_files;
+ gboolean can_trash_files;
gboolean can_copy_files;
gboolean can_link_files;
gboolean can_duplicate_files;
@@ -8500,6 +8516,11 @@ real_update_menus (NautilusView *view)
selection_count != 0 &&
!selection_contains_special_link &&
!selection_contains_desktop_or_home_dir;
+ can_trash_files =
+ can_trash_all (selection) &&
+ selection_count != 0 &&
+ !selection_contains_special_link &&
+ !selection_contains_desktop_or_home_dir;
can_copy_files = selection_count != 0
&& !selection_contains_special_link;
@@ -8676,13 +8697,19 @@ real_update_menus (NautilusView *view)
"icon-name", all_selected_items_in_trash (view) ?
NAUTILUS_ICON_DELETE : NAUTILUS_ICON_TRASH_FULL,
NULL);
- gtk_action_set_sensitive (action, can_delete_files);
+ /* if the backend supports delete but not trash then don't show trash */
+ if (!can_trash_files && can_delete_files)
+ gtk_action_set_visible (action, FALSE);
+ else
+ gtk_action_set_sensitive (action, can_trash_files);
action = gtk_action_group_get_action (view->details->dir_action_group,
NAUTILUS_ACTION_DELETE);
- gtk_action_set_visible (action, show_separate_delete_command);
-
- if (show_separate_delete_command) {
+ /* if the backend doesn't support trash but supports delete
+ show the delete option. or if the user set this pref */
+ gtk_action_set_visible (action, (!can_trash_files && can_delete_files) || show_separate_delete_command);
+
+ if ((!can_trash_files && can_delete_files) || show_separate_delete_command) {
g_object_set (action,
"label", _("_Delete"),
"icon-name", NAUTILUS_ICON_DELETE,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]