reviewed by: Pavel Cisler <firstname.lastname@example.org>
Fixed bug 5157 (Nautilus won't display directories for which it thinks it doesn't have permissions) I removed the code that prevented Nautilus from even trying to load a location for which the perceived permissions didn't allow reading (because the perceived permissions can be wrong with some file systems). Now it always tries, and puts up an error dialog only if it gets an error while actually loading the directory. * src/file-manager/fm-error-reporting.h: * src/file-manager/fm-error-reporting.c: (fm_report_error_loading_directory): New function, currently only handles GNOME_VFS_ERROR_ACCESS_DENIED and a fallback default case. (fm_report_error_renaming_file), (fm_report_error_setting_group), (fm_report_error_setting_owner), (fm_report_error_setting_permissions), (rename_callback): All the report_error functions now take a parent-window parameter (which is often NULL). Also, they now all use gnome_vfs_error_result_to_string when whining about unhandled cases. * src/file-manager/fm-directory-view.h: Changed comments and copyright notice only. * src/file-manager/fm-directory-view.c: (real_load_error): New function, calls fm_report_error_loading_directory unless an error has already been reported for the current directory load operation. (fm_directory_view_initialize_class): Wire up real_load_error as default handler for LOAD_ERROR signal. (activate_callback): Pass parent window to error-reporting call. (load_directory): Reset the reported_load_error boolean since we're about to load anew. * src/file-manager/fm-properties-window.c: (rename_callback), (group_change_callback), (owner_change_callback), (permission_change_callback): Pass parent window to error-reporting-calls. I just passed NULL if it was not trivial to pass a good window. * src/nautilus-window-manage-views.c: (handle_unreadable_location), (open_location): Remove code that was preventing "unreadable" locations from being loaded.
Showing with 160 additions and 71 deletions