From b31cdf226e10aa6e017e7859c0a24e6cd64a69db Mon Sep 17 00:00:00 2001 From: Darin Adler Date: Fri, 16 Feb 2001 18:33:09 +0000 Subject: reviewed by: Gene Ragan Finish fixing bug 6286 (need to re-apply optimization where we do a single directory load): * src/nautilus-window-manage-views.c: (begin_location_change): Do the force_reload work in here. We want it on all 4 kinds of location change (forward, back, new location, reload). Other browsers don't do reload on back, so we may want to change this at some point. (nautilus_window_reload): Remove the old code to invalidate from here now that it's done in begin_location_change. * src/file-manager/fm-directory-view.c: (load_location_callback), (load_directory), (finish_loading), (filtering_changed_callback): Remove the old code to do force_reload. The NautilusDirectory part of triggering a reload is now handled by the shell. * libnautilus-extensions/nautilus-directory.h: * libnautilus-extensions/nautilus-directory.c: (nautilus_directory_file_monitor_add): No force_reload parameter any more. (nautilus_directory_force_reload): New separate call used to force a reload. A method call so subclasses can implement. (nautilus_self_check_directory): Removed the FALSE force_reload argument to file_monitor_add. * libnautilus-extensions/nautilus-vfs-directory.c: (vfs_file_monitor_add): No force_reload parameter any more. (vfs_force_reload): Call through to nautilus_directory_force_reload_internal to do the real work. (nautilus_vfs_directory_initialize_class): Install the new force_reload function. * libnautilus-extensions/nautilus-merged-directory.c: (merged_file_monitor_add): No force_reload parameter any more. (merged_force_reload): Tell all of the real directories to force a reload. (monitor_add_directory): No force_reload to track any more. (nautilus_merged_directory_initialize_class): Install the new force_reload function. * libnautilus-extensions/nautilus-directory-private.h: * libnautilus-extensions/nautilus-directory-async.c: (nautilus_directory_force_reload_internal): Change the name of this function, since there's now a public function that is named nautilus_directory_force_reload. * libnautilus-extensions/nautilus-file-private.h: * libnautilus-extensions/nautilus-file.c: (nautilus_file_get_all_attributes): Made a separate call so other parts of the framework can use it. (nautilus_file_invalidate_all_attributes): Use the new call. * components/tree/nautilus-tree-model.c: (nautilus_tree_model_monitor_add), (nautilus_tree_model_node_begin_monitoring_no_connect): Use the new force_reload call. The old one had more granularity and thus forced less to be reloaded, but it's OK to do a little more here. * libnautilus-extensions/nautilus-trash-monitor.c: (nautilus_trash_monitor_initialize): Removed the FALSE force_reload argument to file_monitor_add. Other stuff: * libnautilus-extensions/nautilus-directory-metafile.c: (get_metafile), (nautilus_directory_get_file_metadata), (nautilus_directory_get_file_metadata_list), (nautilus_directory_set_file_metadata), (nautilus_directory_set_file_metadata_list), (nautilus_directory_copy_file_metadata), (nautilus_directory_remove_file_metadata), (nautilus_directory_rename_file_metadata): Moved FIXMEs around. Pass NULL instead of &ev when calling bonobo_object_release_unref since we don't really want to do anything different if there's some kind of error. * nautilus-installer/install-lib/.cvsignore: * nautilus-installer/libtrilobite/.cvsignore: Gotta create these files when you make new directories. * README: Change xml-i18n-tools to mention the correct branch. --- libnautilus-private/nautilus-vfs-directory.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'libnautilus-private/nautilus-vfs-directory.c') diff --git a/libnautilus-private/nautilus-vfs-directory.c b/libnautilus-private/nautilus-vfs-directory.c index 0638e5c72..bb375bc23 100644 --- a/libnautilus-private/nautilus-vfs-directory.c +++ b/libnautilus-private/nautilus-vfs-directory.c @@ -104,17 +104,11 @@ vfs_file_monitor_add (NautilusDirectory *directory, gconstpointer client, gboolean monitor_hidden_files, gboolean monitor_backup_files, - GList *file_attributes, - gboolean force_reload) + GList *file_attributes) { g_assert (NAUTILUS_IS_VFS_DIRECTORY (directory)); g_assert (client != NULL); - if (force_reload) { - nautilus_directory_force_reload (directory, - file_attributes); - } - nautilus_directory_monitor_add_internal (directory, NULL, client, @@ -133,6 +127,19 @@ vfs_file_monitor_remove (NautilusDirectory *directory, nautilus_directory_monitor_remove_internal (directory, NULL, client); } +static void +vfs_force_reload (NautilusDirectory *directory) +{ + GList *all_attributes; + + g_assert (NAUTILUS_IS_DIRECTORY (directory)); + + all_attributes = nautilus_file_get_all_attributes (); + nautilus_directory_force_reload_internal (directory, + all_attributes); + g_list_free (all_attributes); +} + static gboolean vfs_are_all_files_seen (NautilusDirectory *directory) { @@ -193,6 +200,7 @@ nautilus_vfs_directory_initialize_class (gpointer klass) directory_class->cancel_callback = vfs_cancel_callback; directory_class->file_monitor_add = vfs_file_monitor_add; directory_class->file_monitor_remove = vfs_file_monitor_remove; + directory_class->force_reload = vfs_force_reload; directory_class->are_all_files_seen = vfs_are_all_files_seen; directory_class->is_not_empty = vfs_is_not_empty; } -- cgit v1.2.1