[nautilus] icon-view: if possible, use the local path for the preview (#624841)



commit ebcbb167876f8b4491af0bc86bc29015c211b3af
Author: Olivier Tilloy <olivier tilloy net>
Date:   Tue Aug 17 13:42:36 2010 +0200

    icon-view: if possible, use the local path for the preview (#624841)
    
    This solves issues where the audio previewer is not capable of
    understanding some GVfs URIs.

 src/file-manager/fm-icon-view.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index 7277a9b..755ed8c 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -2027,6 +2027,8 @@ play_file (gpointer callback_data)
 	char **argv;
 	GError *error;
 	char *uri;
+	GFile *gfile;
+	char *path;
 
 	icon_view = FM_ICON_VIEW (callback_data);
 	
@@ -2034,7 +2036,21 @@ play_file (gpointer callback_data)
 	icon_view->details->audio_preview_timeout = 0;
 
 	file = icon_view->details->audio_preview_file;
-	uri = nautilus_file_get_uri (file);
+	gfile = nautilus_file_get_location (file);
+	path = g_file_get_path (gfile);
+
+	/* if we have a local path, use that instead of the native URI.
+	 * this can be useful for special GVfs mounts, such as cdda://
+	 */
+	if (path) {
+		uri = g_filename_to_uri (path, NULL, NULL);
+	} else {
+		uri = nautilus_file_get_uri (file);
+	}
+
+	g_object_unref (gfile);
+	g_free (path);
+
 	argv = get_preview_argv (uri);
 	g_free (uri);
 	if (argv == NULL) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]