summaryrefslogtreecommitdiff
path: root/src/file-manager/fm-icon-view.c
diff options
context:
space:
mode:
authorJasmine Hassan <[email protected]>2012-11-07 01:50:57 +0200
committerJasmine Hassan <[email protected]>2012-11-16 09:45:53 +0200
commit43dad9d04402b97de8440366d03d43dbe954528a (patch)
tree0dbe5b0a32246ecf50889e51454c7a7941d5158a /src/file-manager/fm-icon-view.c
parentaa6696e05a7c2614eccde660bf06554735ace3e2 (diff)
downloadcaja-43dad9d04402b97de8440366d03d43dbe954528a.tar.bz2
caja-43dad9d04402b97de8440366d03d43dbe954528a.tar.xz
[icon-view] if possible, use the local path for the preview
This solves issues where the audio previewer is not capable of understanding some GVfs URIs. (#624841) http://git.gnome.org/browse/nautilus/commit/?id=ebcbb167876f8b4491af0bc86bc29015c211b3af
Diffstat (limited to 'src/file-manager/fm-icon-view.c')
-rw-r--r--src/file-manager/fm-icon-view.c18
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 a9fb8b11..931df9f8 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -2192,6 +2192,8 @@ play_file (gpointer callback_data)
char **argv;
GError *error;
char *uri;
+ GFile *gfile;
+ char *path;
icon_view = FM_ICON_VIEW (callback_data);
@@ -2199,7 +2201,21 @@ play_file (gpointer callback_data)
icon_view->details->audio_preview_timeout = 0;
file = icon_view->details->audio_preview_file;
- uri = caja_file_get_uri (file);
+ gfile = caja_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 = caja_file_get_uri (file);
+ }
+
+ g_object_unref (gfile);
+ g_free (path);
+
argv = get_preview_argv (uri);
g_free (uri);
if (argv == NULL)