[gimp] app: Merge almost identical higher level file_save() wrappers
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Subject: [gimp] app: Merge almost identical higher level file_save() wrappers
- Date: Sat, 2 May 2009 09:58:45 -0400 (EDT)
commit 3c1366a0c15b2d8bb7f3e038400c257af0ef87f4
Author: Martin Nordholts <martinn src gnome org>
Date: Sat May 2 15:58:32 2009 +0200
app: Merge almost identical higher level file_save() wrappers
Merge file_savefile_write_with_uri_and_proc() and
file_save_dialog_save_image() which contains the same logic. Call the
result file_save_dialog_save_image() in lack of a better name, and
keep it in file-save-dialog.[ch] for now in lack of a better place.
---
app/actions/file-commands.c | 80 +++-------------------------------------
app/dialogs/file-save-dialog.c | 33 +++++++++-------
app/dialogs/file-save-dialog.h | 12 +++++-
3 files changed, 35 insertions(+), 90 deletions(-)
diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c
index 6fd74ac..007ddf6 100644
--- a/app/actions/file-commands.c
+++ b/app/actions/file-commands.c
@@ -53,6 +53,7 @@
#include "display/gimpdisplay-foreach.h"
#include "dialogs/dialogs.h"
+#include "dialogs/file-save-dialog.h"
#include "actions.h"
#include "file-commands.h"
@@ -77,11 +78,6 @@ static void file_save_dialog_show (Gimp *gimp,
const gchar *title,
gboolean save_a_copy,
gboolean close_after_saving);
-static gboolean file_write_with_uri_and_proc (GimpImage *image,
- GimpContext *context,
- GimpDisplay *display,
- const gchar *uri,
- GimpPlugInProcedure *proc);
static void file_save_dialog_destroyed (GtkWidget *dialog,
GimpImage *image);
static void file_new_template_callback (GtkWidget *widget,
@@ -246,11 +242,11 @@ file_save_cmd_callback (GtkAction *action,
if (uri && save_proc)
{
- saved = file_write_with_uri_and_proc (image,
- action_data_get_context (data),
- display,
- uri,
- save_proc);
+ saved = file_save_dialog_save_image (GIMP_PROGRESS (display),
+ gimp, image, uri,
+ save_proc,
+ GIMP_RUN_WITH_LAST_VALS,
+ FALSE, TRUE);
break;
}
@@ -507,70 +503,6 @@ file_save_dialog_show (Gimp *gimp,
}
}
-static gboolean
-file_write_with_uri_and_proc (GimpImage *image,
- GimpContext *context,
- GimpDisplay *display,
- const gchar *uri,
- GimpPlugInProcedure *proc)
-{
- gboolean saved = FALSE;
- GimpPDBStatusType status;
- GError *error = NULL;
- GList *list;
-
- for (list = gimp_action_groups_from_name ("file");
- list;
- list = g_list_next (list))
- {
- gimp_action_group_set_action_sensitive (list->data,
- "file-quit",
- FALSE);
- }
-
- status = file_save (image, context,
- GIMP_PROGRESS (display),
- uri, proc,
- GIMP_RUN_WITH_LAST_VALS, FALSE, &error);
-
- switch (status)
- {
- case GIMP_PDB_SUCCESS:
- saved = TRUE;
- break;
-
- case GIMP_PDB_CANCEL:
- gimp_message_literal (image->gimp,
- G_OBJECT (display), GIMP_MESSAGE_INFO,
- _("Saving canceled"));
- break;
-
- default:
- {
- gchar *filename = file_utils_uri_display_name (uri);
-
- gimp_message (image->gimp, G_OBJECT (display),
- GIMP_MESSAGE_ERROR,
- _("Saving '%s' failed:\n\n%s"),
- filename, error->message);
- g_free (filename);
- g_clear_error (&error);
- }
- break;
- }
-
- for (list = gimp_action_groups_from_name ("file");
- list;
- list = g_list_next (list))
- {
- gimp_action_group_set_action_sensitive (list->data,
- "file-quit",
- TRUE);
- }
-
- return saved;
-}
-
static void
file_save_dialog_destroyed (GtkWidget *dialog,
GimpImage *image)
diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c
index 6e479bc..3a97b19 100644
--- a/app/dialogs/file-save-dialog.c
+++ b/app/dialogs/file-save-dialog.c
@@ -68,11 +68,6 @@ static void file_save_dialog_unknown_ext_msg (GimpFileDialog *dialog,
Gimp *gimp);
static gboolean file_save_dialog_use_extension (GtkWidget *save_dialog,
const gchar *uri);
-static gboolean file_save_dialog_save_image (GtkWidget *save_dialog,
- GimpImage *image,
- const gchar *uri,
- GimpPlugInProcedure *save_proc,
- gboolean save_a_copy);
/* public functions */
@@ -137,11 +132,14 @@ file_save_dialog_response (GtkWidget *save_dialog,
if (file_save_dialog_check_uri (save_dialog, gimp,
&uri, &basename, &save_proc))
{
- if (file_save_dialog_save_image (save_dialog,
+ if (file_save_dialog_save_image (GIMP_PROGRESS (save_dialog),
+ gimp,
dialog->image,
uri,
save_proc,
- dialog->save_a_copy))
+ GIMP_RUN_INTERACTIVE,
+ dialog->save_a_copy,
+ FALSE))
{
g_object_set_data_full (G_OBJECT (dialog->image->gimp),
GIMP_FILE_SAVE_LAST_URI_KEY,
@@ -467,12 +465,15 @@ file_save_dialog_use_extension (GtkWidget *save_dialog,
return use_name;
}
-static gboolean
-file_save_dialog_save_image (GtkWidget *save_dialog,
+gboolean
+file_save_dialog_save_image (GimpProgress *progress,
+ Gimp *gimp,
GimpImage *image,
const gchar *uri,
GimpPlugInProcedure *save_proc,
- gboolean save_a_copy)
+ GimpRunMode run_mode,
+ gboolean save_a_copy,
+ gboolean verbose_cancel)
{
GimpPDBStatusType status;
GError *error = NULL;
@@ -486,10 +487,8 @@ file_save_dialog_save_image (GtkWidget *save_dialog,
gimp_action_group_set_action_sensitive (list->data, "file-quit", FALSE);
}
- status = file_save (image, gimp_get_user_context (image->gimp),
- GIMP_PROGRESS (save_dialog),
- uri, save_proc,
- GIMP_RUN_INTERACTIVE, save_a_copy, &error);
+ status = file_save (image, gimp_get_user_context (gimp), progress,
+ uri, save_proc, run_mode, save_a_copy, &error);
switch (status)
{
@@ -498,13 +497,17 @@ file_save_dialog_save_image (GtkWidget *save_dialog,
break;
case GIMP_PDB_CANCEL:
+ if (verbose_cancel)
+ gimp_message_literal (gimp,
+ G_OBJECT (progress), GIMP_MESSAGE_INFO,
+ _("Saving canceled"));
break;
default:
{
gchar *filename = file_utils_uri_display_name (uri);
- gimp_message (image->gimp, G_OBJECT (save_dialog), GIMP_MESSAGE_ERROR,
+ gimp_message (gimp, G_OBJECT (progress), GIMP_MESSAGE_ERROR,
_("Saving '%s' failed:\n\n%s"), filename, error->message);
g_clear_error (&error);
g_free (filename);
diff --git a/app/dialogs/file-save-dialog.h b/app/dialogs/file-save-dialog.h
index ce48834..c4ac371 100644
--- a/app/dialogs/file-save-dialog.h
+++ b/app/dialogs/file-save-dialog.h
@@ -19,7 +19,17 @@
#define __FILE_SAVE_DIALOG_H__
-GtkWidget * file_save_dialog_new (Gimp *gimp);
+GtkWidget * file_save_dialog_new (Gimp *gimp);
+
+gboolean file_save_dialog_save_image (GimpProgress *progress_and_handler,
+ Gimp *gimp,
+ GimpImage *image,
+ const gchar *uri,
+ GimpPlugInProcedure *write_proc,
+ GimpRunMode run_mode,
+ gboolean save_a_copy,
+ gboolean verbose_cancel);
+
#endif /* __FILE_SAVE_DIALOG_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]