evince r2917 - in trunk: . libdocument



Author: carlosgc
Date: Sat Feb 16 11:53:30 2008
New Revision: 2917
URL: http://svn.gnome.org/viewvc/evince?rev=2917&view=rev

Log:
2008-02-16  Carlos Garcia Campos  <carlosgc gnome org>
	* libdocument/ev-image.c: (ev_image_finalize),
	(ev_image_save_tmp):
	Return a real uri instead of a filename when saving an
	image. Fixes images drag an drop from evince to nautilus.


Modified:
   trunk/ChangeLog
   trunk/libdocument/ev-image.c

Modified: trunk/libdocument/ev-image.c
==============================================================================
--- trunk/libdocument/ev-image.c	(original)
+++ trunk/libdocument/ev-image.c	Sat Feb 16 11:53:30 2008
@@ -46,7 +46,11 @@
 	}
 
 	if (image->priv->tmp_uri) {
-		ev_tmp_filename_unlink (image->priv->tmp_uri);
+		gchar *filename;
+
+		filename = g_filename_from_uri (image->priv->tmp_uri, NULL, NULL);
+		ev_tmp_filename_unlink (filename);
+		g_free (filename);
 		g_free (image->priv->tmp_uri);
 		image->priv->tmp_uri = NULL;
 	}
@@ -128,6 +132,7 @@
 		   GdkPixbuf *pixbuf)
 {
 	GError *error = NULL;
+	gchar  *filename;
 	
 	g_return_val_if_fail (EV_IS_IMAGE (image), NULL);
 	g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
@@ -135,18 +140,21 @@
 	if (image->priv->tmp_uri)
 		return image->priv->tmp_uri;
 
-	image->priv->tmp_uri = ev_tmp_filename ("image");
-	gdk_pixbuf_save (pixbuf, image->priv->tmp_uri,
+	filename = ev_tmp_filename ("image");
+	gdk_pixbuf_save (pixbuf, filename,
 			 "png", &error,
 			 "compression", "3", NULL);
-	if (!error)
+	if (!error) {
+		image->priv->tmp_uri = g_filename_to_uri (filename, NULL, NULL);
+		g_free (filename);
+		
 		return image->priv->tmp_uri;
+	}
 
 	/* Erro saving image */
 	g_warning (error->message);
 	g_error_free (error);
-	g_free (image->priv->tmp_uri);
-	image->priv->tmp_uri = NULL;
+	g_free (filename);
 
 	return NULL;
 }



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