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);
openSUSE Build Service is sponsored by