[brasero] Fix #597584 - make burning audio cds with brasero work



commit 7857ae2ac9643df91f9bca84a48eca14e0f6a371
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Wed Oct 7 22:22:23 2009 +0200

    Fix #597584 -  make burning audio cds with brasero work
    Patch by Bastien Nocera <hadess hadess net>
    Brasero could not parse paths in its project anymore only URIs which broke apps like rhythmbox

 src/brasero-project-parse.c |   16 +++++++++++++---
 src/main.c                  |   10 +++++-----
 2 files changed, 18 insertions(+), 8 deletions(-)
---
diff --git a/src/brasero-project-parse.c b/src/brasero-project-parse.c
index 95c438d..ffacf46 100644
--- a/src/brasero-project-parse.c
+++ b/src/brasero-project-parse.c
@@ -432,10 +432,13 @@ brasero_project_open_project_xml (const gchar *uri,
 	xmlDocPtr project;
 	xmlNodePtr item;
 	gboolean retval;
+	GFile *file;
 	gchar *path;
 
-	path = g_filename_from_uri (uri, NULL, NULL);
-    	if (!path)
+	file = g_file_new_for_commandline_arg (uri);
+	path = g_file_get_path (file);
+	g_object_unref (file);
+	if (!path)
 		return FALSE;
 
 	/* start parsing xml doc */
@@ -571,6 +574,12 @@ brasero_project_open_audio_playlist_project (const gchar *uri,
 {
 	TotemPlParser *parser;
 	TotemPlParserResult result;
+	GFile *file;
+	char *_uri;
+
+	file = g_file_new_for_commandline_arg (uri);
+	_uri = g_file_get_uri (file);
+	g_object_unref (file);
 
 	parser = totem_pl_parser_new ();
 	g_object_set (parser,
@@ -588,12 +597,13 @@ brasero_project_open_audio_playlist_project (const gchar *uri,
 			  G_CALLBACK (brasero_project_playlist_entry_parsed),
 			  session);
 
-	result = totem_pl_parser_parse (parser, uri, FALSE);
+	result = totem_pl_parser_parse (parser, _uri, FALSE);
 	if (result != TOTEM_PL_PARSER_RESULT_SUCCESS) {
 		if (warn_user)
 			brasero_project_invalid_project_dialog (_("It does not seem to be a valid Brasero project"));
 	}
 
+	g_free (_uri);
 	g_object_unref (parser);
 
 	return (result == TOTEM_PL_PARSER_RESULT_SUCCESS);
diff --git a/src/main.c b/src/main.c
index 7de917c..e717ef5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -70,13 +70,13 @@ gint open_ncb;
 gint parent_window;
 
 static const GOptionEntry options [] = {
-	{ "project", 'p', 0, G_OPTION_ARG_STRING, &project_uri,
+	{ "project", 'p', 0, G_OPTION_ARG_FILENAME, &project_uri,
 	  N_("Open the specified project"),
 	  N_("PROJECT") },
 
 #ifdef BUILD_PLAYLIST
 
-	 { "playlist", 'l', 0, G_OPTION_ARG_STRING, &playlist_uri,
+	 { "playlist", 'l', 0, G_OPTION_ARG_FILENAME, &playlist_uri,
 	  N_("Open the specified playlist as an audio project"),
 	  N_("PLAYLIST") },
 
@@ -94,7 +94,7 @@ static const GOptionEntry options [] = {
 	  N_("Copy a disc"),
 	  N_("PATH TO DEVICE") },
 
-	{ "cover", 'j', 0, G_OPTION_ARG_STRING, &cover_project,
+	{ "cover", 'j', 0, G_OPTION_ARG_FILENAME, &cover_project,
 	  N_("Cover to use"),
 	  N_("PATH TO COVER") },
 
@@ -102,7 +102,7 @@ static const GOptionEntry options [] = {
 	  N_("Open a video project adding the URIs given on the command line"),
 	  NULL },
 
-	{ "image", 'i', 0, G_OPTION_ARG_STRING, &iso_uri,
+	{ "image", 'i', 0, G_OPTION_ARG_FILENAME, &iso_uri,
 	 N_("URI of an image file to burn (autodetected)"),
           N_("PATH TO PLAYLIST") },
 
@@ -122,7 +122,7 @@ static const GOptionEntry options [] = {
 	  N_("Burn the contents of burn:// URI"),
 	  NULL },
 
-	{ "burn-and-remove-project", 'r', 0, G_OPTION_ARG_STRING, &burn_project_uri,
+	{ "burn-and-remove-project", 'r', 0, G_OPTION_ARG_FILENAME, &burn_project_uri,
 	  N_("Burn the specified project and remove it.\nThis option is mainly useful for integration with other applications."),
 	  N_("PATH") },
 



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