gthumb r2483 - in trunk: . libgthumb



Author: mjc
Date: Sat Dec 27 11:38:12 2008
New Revision: 2483
URL: http://svn.gnome.org/viewvc/gthumb?rev=2483&view=rev

Log:
2008-12-27  Michael J. Chudobiak  <mjc svn gnome org>

        * libgthumb/dlg-save-image.c: (save_image), (file_save_ok_cb),
        (dlg_save_image_as), (dlg_save_image):
        The metadata copying wasn't working quite right in the "Save As" case,
        because the original uri wasn't forwarded to the metadata copying
        routine. Fixed now.



Modified:
   trunk/ChangeLog
   trunk/libgthumb/dlg-save-image.c

Modified: trunk/libgthumb/dlg-save-image.c
==============================================================================
--- trunk/libgthumb/dlg-save-image.c	(original)
+++ trunk/libgthumb/dlg-save-image.c	Sat Dec 27 11:38:12 2008
@@ -89,6 +89,7 @@
 static gboolean
 save_image (GtkWindow     *parent,
      	    FileData      *file,
+	    const char    *original_file,
 	    GdkPixbuf     *pixbuf,
 	    SaveImageData *data,
 	    GtkDialog     *file_sel)
@@ -111,11 +112,14 @@
 
 		if (dlg_save_options (parent, image_type, &keys, &values)) {
 			char *local_file;
-			
+			char *original_local_file;
+	
 			local_file = get_cache_filename_from_uri (file->path);
+			original_local_file = get_cache_filename_from_uri (original_file);
+
 			if (_gdk_pixbuf_savev (pixbuf,
 					       local_file,
-					       local_file,
+					       original_local_file,
 					       image_type,
 					       keys, values,
 					       &error))
@@ -124,6 +128,7 @@
 				_gtk_error_dialog_from_gerror_run (parent, &error);
 				
 			g_free (local_file);
+			g_free (original_local_file);
 		}
 
 		g_free (image_type);
@@ -160,12 +165,14 @@
 	GdkPixbuf     *pixbuf;
 	FileData      *file = NULL;
 	const char    *mime_type = NULL;
+	const char    *original_file;
 	int            idx;
 	SaveImageData *data;
 
 	parent = g_object_get_data (G_OBJECT (file_sel), "parent_window");
 	pixbuf = g_object_get_data (G_OBJECT (file_sel), "pixbuf");
 	data = g_object_get_data (G_OBJECT (file_sel), "data");
+	original_file = g_object_get_data (G_OBJECT (file_sel), "uri");
 
 	file = file_data_new (gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (file_sel)));
 
@@ -177,7 +184,7 @@
 		mime_type = mime_types [idx - 2];
 	file->mime_type = get_static_string (mime_type);
 
-	save_image (parent, file, pixbuf, data, file_sel);
+	save_image (parent, file, original_file, pixbuf, data, file_sel);
 	g_free (file);
 }
 
@@ -288,6 +295,7 @@
 	g_object_set_data (G_OBJECT (file_sel), "pixbuf", pixbuf);
 	g_object_set_data (G_OBJECT (file_sel), "data", data);
 	g_object_set_data (G_OBJECT (file_sel), "opt_menu", opt_menu);
+	g_object_set_data (G_OBJECT (file_sel), "uri", g_strdup (uri));
 
 	g_signal_connect (GTK_DIALOG (file_sel),
 			  "response",
@@ -326,7 +334,7 @@
 	data->done_data = done_data;
 	data->metadata = metadata;
 
-	save_image (parent, file, pixbuf, data, NULL);
+	save_image (parent, file, file->path, pixbuf, data, NULL);
 }
 
 



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