File nautilus-directory-cache-is-local.diff of Package nautilus
2006-08-23 Alexander Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-directory-private.h:
* libnautilus-private/nautilus-directory.c:
(nautilus_directory_is_local):
Cache return value from gnome_vfs_uri_is_local
* libnautilus-private/nautilus-file-utilities.c:
Avoid using gnome_vfs_uri_is_local.
--- nautilus/libnautilus-private/nautilus-directory-private.h 18 Apr 2006 16:54:31 -0000 1.96
+++ nautilus/libnautilus-private/nautilus-directory-private.h 23 Aug 2006 09:07:11 -0000 1.97
@@ -45,6 +45,7 @@ struct NautilusDirectoryDetails
/* The location. */
char *uri;
GnomeVFSURI *vfs_uri;
+ int is_local_state;
/* The file objects. */
NautilusFile *as_file;
--- nautilus/libnautilus-private/nautilus-directory.c 26 Feb 2006 17:02:01 -0000 1.258
+++ nautilus/libnautilus-private/nautilus-directory.c 23 Aug 2006 09:07:12 -0000 1.259
@@ -541,7 +541,15 @@ nautilus_directory_is_local (NautilusDir
if (directory->details->vfs_uri == NULL) {
return TRUE;
}
- return gnome_vfs_uri_is_local (directory->details->vfs_uri);
+ if (directory->details->is_local_state == 0) {
+ if (gnome_vfs_uri_is_local (directory->details->vfs_uri)) {
+ directory->details->is_local_state = 1;
+ } else {
+ directory->details->is_local_state = -1;
+ }
+ }
+
+ return directory->details->is_local_state > 0;
}
gboolean
--- nautilus/libnautilus-private/nautilus-file-utilities.c 27 Jul 2006 21:58:41 -0000 1.133
+++ nautilus/libnautilus-private/nautilus-file-utilities.c 23 Aug 2006 09:07:16 -0000 1.134
@@ -79,7 +79,7 @@ nautilus_compute_title_for_uri (const ch
}
file = nautilus_file_get (text_uri);
uri = gnome_vfs_uri_new (text_uri);
- if (uri && !gnome_vfs_uri_is_local (uri)) {
+ if (uri && strcmp (uri->method_string, "file") != 0) {
hostname = gnome_vfs_uri_get_host_name (uri);
}
displayname = nautilus_file_get_display_name (file);