summaryrefslogtreecommitdiffstats
path: root/main/nautilus/010-localpath-preview.patch
blob: 736559ad92944c5891b5d0697fab835db86fa83b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From ebcbb167876f8b4491af0bc86bc29015c211b3af Mon Sep 17 00:00:00 2001
From: Olivier Tilloy <olivier@tilloy.net>
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