From ebcbb167876f8b4491af0bc86bc29015c211b3af Mon Sep 17 00:00:00 2001 From: Olivier Tilloy Date: Tue, 17 Aug 2010 11:42:36 +0000 Subject: 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. --- 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) { -- cgit v0.9