From bug 46200 [1]: ' (1) Launch Nautilus (2) Right-click trash icon on desktop and choose "Show Properties" Note that by "Contents" it says "--" ' Proposed patch attached. [1] http://bugzilla.gnome.org/show_bug.cgi?id=46200 -- Christian Neumair <chris gnome-de org>
Index: libnautilus-private/nautilus-trash-file.c =================================================================== RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-trash-file.c,v retrieving revision 1.22 diff -u -p -r1.22 nautilus-trash-file.c --- libnautilus-private/nautilus-trash-file.c 2 Apr 2003 11:51:00 -0000 1.22 +++ libnautilus-private/nautilus-trash-file.c 30 Jul 2005 09:30:05 -0000 @@ -79,6 +79,7 @@ static NautilusFileAttributes get_delegated_attributes_mask (void) { return NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS | + NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE | NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT | NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES; } @@ -589,6 +590,13 @@ trash_file_get_item_count (NautilusFile return got_count; } +static void +file_type_is_ready (NautilusFile *file, + gpointer trash_file) +{ + nautilus_file_updated_deep_count_in_progress (trash_file); +} + static NautilusRequestStatus trash_file_get_deep_counts (NautilusFile *file, guint *directory_count, @@ -600,6 +608,7 @@ trash_file_get_deep_counts (NautilusFile GList *node; NautilusRequestStatus status, one_status; guint one_directory_count, one_file_count, one_unreadable_directory_count; + gboolean any_file_was_ready, all_files_were_ready; GnomeVFSFileSize one_total_size; trash = NAUTILUS_TRASH_FILE (file); @@ -618,7 +627,20 @@ trash_file_get_deep_counts (NautilusFile *total_size = 0; } + any_file_was_ready = FALSE; + all_files_were_ready = TRUE; for (node = trash->details->files; node != NULL; node = node->next) { + if (!nautilus_file_check_if_ready (node->data, NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE)) { + /* nautilus-directory-asnync.c:deep_count_start will fail if node->data is not + * yet recognized as directory */ + all_files_were_ready = FALSE; + nautilus_file_call_when_ready (node->data, NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE, + file_type_is_ready, trash); + continue; + } + + any_file_was_ready = TRUE; + one_status = nautilus_file_get_deep_counts (node->data, &one_directory_count, @@ -641,6 +663,12 @@ trash_file_get_deep_counts (NautilusFile if (total_size != NULL) { *total_size += one_total_size; } + } + + if (!any_file_was_ready) { + status = NAUTILUS_REQUEST_NOT_STARTED; + } else if (!all_files_were_ready) { + status = NAUTILUS_REQUEST_IN_PROGRESS; } return status;
Attachment:
signature.asc
Description: This is a digitally signed message part