From d4bf381c20cf3ab9cbe43f1cd7317e97cb46f765 Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Tue, 16 Nov 2004 13:37:36 +0000 Subject: [PATCH] app/actions/file-commands.c app/dialogs/file-save-dialog.c 2004-11-16 Sven Neumann * app/actions/file-commands.c * app/dialogs/file-save-dialog.c * app/file/file-save.[ch] * app/widgets/gimpfiledialog.[ch]: combined "set_uri_and_proc" and "set_image_clean" parameters into a single "save_a_copy" parameter. When saving a copy, attach the used URI to the image and let the "Save a Copy" file chooser default to the last used value. --- ChangeLog | 10 ++++++++++ app/actions/file-commands.c | 18 ++++++++---------- app/dialogs/file-save-dialog.c | 15 +++++---------- app/file/file-save.c | 24 +++++++++++------------- app/file/file-save.h | 3 +-- app/widgets/gimpfiledialog.c | 16 +++++++++------- app/widgets/gimpfiledialog.h | 6 ++---- 7 files changed, 46 insertions(+), 46 deletions(-) diff --git a/ChangeLog b/ChangeLog index b0c1cdfe52..1871d3b894 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2004-11-16 Sven Neumann + + * app/actions/file-commands.c + * app/dialogs/file-save-dialog.c + * app/file/file-save.[ch] + * app/widgets/gimpfiledialog.[ch]: combined "set_uri_and_proc" and + "set_image_clean" parameters into a single "save_a_copy" + parameter. When saving a copy, attach the used URI to the image and + let the "Save a Copy" file chooser default to the last used value. + 2004-11-16 Sven Neumann * plug-ins/script-fu/scripts/glossy.scm: fixed typo (bug #158425). diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c index 27dc74eab8..0d1abf4ff8 100644 --- a/app/actions/file-commands.c +++ b/app/actions/file-commands.c @@ -67,8 +67,7 @@ static void file_open_dialog_show (GtkWidget *parent, static void file_save_dialog_show (GimpImage *gimage, GtkWidget *parent, const gchar *title, - gboolean set_uri_and_proc, - gboolean set_image_clean); + gboolean save_a_copy); static void file_save_dialog_destroyed (GtkWidget *dialog, GimpImage *gimage); static void file_new_template_callback (GtkWidget *widget, @@ -228,8 +227,8 @@ file_save_as_cmd_callback (GtkAction *action, if (! gimp_image_active_drawable (gdisp->gimage)) return; - file_save_dialog_show (gdisp->gimage, widget, _("Save Image"), - TRUE, TRUE); + file_save_dialog_show (gdisp->gimage, widget, + _("Save Image"), FALSE); } void @@ -244,8 +243,8 @@ file_save_a_copy_cmd_callback (GtkAction *action, if (! gimp_image_active_drawable (gdisp->gimage)) return; - file_save_dialog_show (gdisp->gimage, widget, _("Save a Copy of the Image"), - FALSE, FALSE); + file_save_dialog_show (gdisp->gimage, widget, + _("Save a Copy of the Image"), TRUE); } void @@ -387,8 +386,7 @@ static void file_save_dialog_show (GimpImage *gimage, GtkWidget *parent, const gchar *title, - gboolean set_uri_and_proc, - gboolean set_image_clean) + gboolean save_a_copy) { GtkWidget *dialog; @@ -417,8 +415,8 @@ file_save_dialog_show (GimpImage *gimage, { gtk_window_set_title (GTK_WINDOW (dialog), title); - gimp_file_dialog_set_image (GIMP_FILE_DIALOG (dialog), gimage, - set_uri_and_proc, set_image_clean); + gimp_file_dialog_set_image (GIMP_FILE_DIALOG (dialog), + gimage, save_a_copy); gtk_window_present (GTK_WINDOW (dialog)); } diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c index 104c9870a9..61eef0af9a 100644 --- a/app/dialogs/file-save-dialog.c +++ b/app/dialogs/file-save-dialog.c @@ -60,8 +60,7 @@ static gboolean file_save_dialog_save_image (GtkWidget *save_dialog, const gchar *uri, const gchar *raw_filename, PlugInProcDef *save_proc, - gboolean set_uri_and_proc, - gboolean set_image_clean); + gboolean save_a_copy); /* public functions */ @@ -123,8 +122,7 @@ file_save_dialog_response (GtkWidget *save_dialog, uri, uri, dialog->file_proc, - dialog->set_uri_and_proc, - dialog->set_image_clean)) + dialog->save_a_copy)) { gtk_widget_hide (save_dialog); } @@ -209,8 +207,7 @@ file_save_overwrite_response (GtkWidget *dialog, overwrite_data->uri, overwrite_data->raw_filename, save_dialog->file_proc, - save_dialog->set_uri_and_proc, - save_dialog->set_image_clean)) + save_dialog->save_a_copy)) { gtk_widget_hide (overwrite_data->save_dialog); } @@ -229,8 +226,7 @@ file_save_dialog_save_image (GtkWidget *save_dialog, const gchar *uri, const gchar *raw_filename, PlugInProcDef *save_proc, - gboolean set_uri_and_proc, - gboolean set_image_clean) + gboolean save_a_copy) { GimpPDBStatusType status; GError *error = NULL; @@ -242,8 +238,7 @@ file_save_dialog_save_image (GtkWidget *save_dialog, raw_filename, save_proc, GIMP_RUN_INTERACTIVE, - set_uri_and_proc, - set_image_clean, + save_a_copy, &error); if (status != GIMP_PDB_SUCCESS && diff --git a/app/file/file-save.c b/app/file/file-save.c index ebfb679b81..58cac967bd 100644 --- a/app/file/file-save.c +++ b/app/file/file-save.c @@ -90,8 +90,7 @@ file_save (GimpImage *gimage, file_proc = gimp_image_get_save_proc (gimage); return file_save_as (gimage, context, progress, - uri, uri, file_proc, run_mode, - FALSE, TRUE, error); + uri, uri, file_proc, run_mode, FALSE, error); } GimpPDBStatusType @@ -102,8 +101,7 @@ file_save_as (GimpImage *gimage, const gchar *raw_filename, PlugInProcDef *file_proc, GimpRunMode run_mode, - gboolean set_uri_and_proc, - gboolean set_image_clean, + gboolean save_a_copy, GError **error) { const ProcRecord *proc; @@ -189,22 +187,22 @@ file_save_as (GimpImage *gimage, GimpDocumentList *documents; GimpImagefile *imagefile; - if (set_image_clean) + if (save_a_copy) { - /* set this image to clean */ - gimp_image_clean_all (gimage); + g_object_set_data_full (G_OBJECT (gimage), "gimp-image-save-a-copy", + g_strdup (uri), (GDestroyNotify) g_free); } + else + { + gimp_image_set_uri (gimage, uri); + gimp_image_set_save_proc (gimage, file_proc); + gimp_image_clean_all (gimage); + } documents = GIMP_DOCUMENT_LIST (gimage->gimp->documents); imagefile = gimp_document_list_add_uri (documents, uri, file_proc->mime_type); - if (set_uri_and_proc) - { - gimp_image_set_uri (gimage, uri); - gimp_image_set_save_proc (gimage, file_proc); - } - gimp_imagefile_save_thumbnail (imagefile, file_proc->mime_type, gimage); gimp_recent_list_add_uri (uri, file_proc->mime_type); diff --git a/app/file/file-save.h b/app/file/file-save.h index 6cb9fabbbe..ba40d8ef1b 100644 --- a/app/file/file-save.h +++ b/app/file/file-save.h @@ -34,8 +34,7 @@ GimpPDBStatusType file_save_as (GimpImage *gimage, const gchar *raw_filename, PlugInProcDef *file_proc, GimpRunMode run_mode, - gboolean set_uri_and_proc, - gboolean set_image_clean, + gboolean save_a_copy, GError **error); diff --git a/app/widgets/gimpfiledialog.c b/app/widgets/gimpfiledialog.c index 9ec263657b..af1c2aaa9f 100644 --- a/app/widgets/gimpfiledialog.c +++ b/app/widgets/gimpfiledialog.c @@ -428,20 +428,22 @@ gimp_file_dialog_set_uri (GimpFileDialog *dialog, void gimp_file_dialog_set_image (GimpFileDialog *dialog, GimpImage *gimage, - gboolean set_uri_and_proc, - gboolean set_image_clean) + gboolean save_a_copy) { - const gchar *uri; + const gchar *uri = NULL; gboolean uri_set = FALSE; g_return_if_fail (GIMP_IS_FILE_DIALOG (dialog)); g_return_if_fail (GIMP_IS_IMAGE (gimage)); - dialog->gimage = gimage; - dialog->set_uri_and_proc = set_uri_and_proc; - dialog->set_image_clean = set_image_clean; + dialog->gimage = gimage; + dialog->save_a_copy = save_a_copy; - uri = gimp_object_get_name (GIMP_OBJECT (gimage)); + if (save_a_copy) + uri = g_object_get_data (G_OBJECT (gimage), "gimp-image-save-a-copy"); + + if (! uri) + uri = gimp_object_get_name (GIMP_OBJECT (gimage)); if (uri) uri_set = gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog), uri); diff --git a/app/widgets/gimpfiledialog.h b/app/widgets/gimpfiledialog.h index d230e04528..5ca063cef7 100644 --- a/app/widgets/gimpfiledialog.h +++ b/app/widgets/gimpfiledialog.h @@ -42,8 +42,7 @@ struct _GimpFileDialog PlugInProcDef *file_proc; GimpImage *gimage; - gboolean set_uri_and_proc; - gboolean set_image_clean; + gboolean save_a_copy; GtkWidget *thumb_box; GtkWidget *proc_expander; @@ -83,8 +82,7 @@ void gimp_file_dialog_set_uri (GimpFileDialog *dialog, const gchar *uri); void gimp_file_dialog_set_image (GimpFileDialog *dialog, GimpImage *gimage, - gboolean set_uri_and_proc, - gboolean set_image_clean); + gboolean save_a_copy); G_END_DECLS