[gimp: 23/27] app: Emit the GimpImage::exported signal when image is exported



commit c23370c3af216080437859391bc303a588f562f3
Author: Martin Nordholts <martinn src gnome org>
Date:   Sat May 16 11:28:53 2009 +0200

    app: Emit the GimpImage::exported signal when image is exported
---
 app/actions/file-commands.c    |    4 ++--
 app/dialogs/file-save-dialog.c |    4 +++-
 app/dialogs/file-save-dialog.h |    1 +
 app/file/file-save.c           |    6 +++++-
 app/file/file-save.h           |    1 +
 app/widgets/gimpdnd-xds.c      |   13 +++++++++----
 6 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c
index 0193b49..a6d623d 100644
--- a/app/actions/file-commands.c
+++ b/app/actions/file-commands.c
@@ -251,7 +251,7 @@ file_save_cmd_callback (GtkAction *action,
                                                    gimp, image, uri,
                                                    save_proc,
                                                    GIMP_RUN_WITH_LAST_VALS,
-                                                   TRUE, TRUE);
+                                                   TRUE, FALSE, TRUE);
               break;
             }
 
@@ -302,7 +302,7 @@ file_save_cmd_callback (GtkAction *action,
                                                  gimp, image, uri,
                                                  export_proc,
                                                  GIMP_RUN_WITH_LAST_VALS,
-                                                 FALSE, TRUE);
+                                                 FALSE, TRUE, TRUE);
           }
       }
       break;
diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c
index 4b85a88..1bc0abc 100644
--- a/app/dialogs/file-save-dialog.c
+++ b/app/dialogs/file-save-dialog.c
@@ -190,6 +190,7 @@ file_save_dialog_response (GtkWidget *save_dialog,
                                        save_proc,
                                        GIMP_RUN_INTERACTIVE,
                                        ! dialog->save_a_copy && ! dialog->export,
+                                       dialog->export,
                                        FALSE))
         {
           /* Save was successful, now store the URI in a couple of
@@ -648,6 +649,7 @@ file_save_dialog_save_image (GimpProgress        *progress,
                              GimpPlugInProcedure *save_proc,
                              GimpRunMode          run_mode,
                              gboolean             change_saved_state,
+                             gboolean             export,
                              gboolean             verbose_cancel)
 {
   GimpPDBStatusType  status;
@@ -663,7 +665,7 @@ file_save_dialog_save_image (GimpProgress        *progress,
     }
 
   status = file_save (gimp, image, progress, uri,
-                      save_proc, run_mode, change_saved_state, &error);
+                      save_proc, run_mode, change_saved_state, export, &error);
 
   switch (status)
     {
diff --git a/app/dialogs/file-save-dialog.h b/app/dialogs/file-save-dialog.h
index a2ec5ed..abf1b07 100644
--- a/app/dialogs/file-save-dialog.h
+++ b/app/dialogs/file-save-dialog.h
@@ -29,6 +29,7 @@ gboolean    file_save_dialog_save_image (GimpProgress        *progress_and_handl
                                          GimpPlugInProcedure *write_proc,
                                          GimpRunMode          run_mode,
                                          gboolean             save_a_copy,
+                                         gboolean             export,
                                          gboolean             verbose_cancel);
 
 
diff --git a/app/file/file-save.c b/app/file/file-save.c
index c62b717..1704056 100644
--- a/app/file/file-save.c
+++ b/app/file/file-save.c
@@ -74,6 +74,7 @@ file_save (Gimp                *gimp,
            GimpPlugInProcedure *file_proc,
            GimpRunMode          run_mode,
            gboolean             change_saved_state,
+           gboolean             export,
            GError             **error)
 {
   GimpDrawable      *drawable;
@@ -162,7 +163,10 @@ file_save (Gimp                *gimp,
           gimp_image_clean_all (image);
         }
 
-      gimp_image_saved (image, uri);
+      if (! export)
+        gimp_image_saved (image, uri);
+      else
+        gimp_image_exported (image, uri);
 
       documents = GIMP_DOCUMENT_LIST (image->gimp->documents);
       imagefile = gimp_document_list_add_uri (documents,
diff --git a/app/file/file-save.h b/app/file/file-save.h
index 5fdd025..9596a72 100644
--- a/app/file/file-save.h
+++ b/app/file/file-save.h
@@ -28,6 +28,7 @@ GimpPDBStatusType   file_save (Gimp                 *gimp,
                                GimpPlugInProcedure  *file_proc,
                                GimpRunMode           run_mode,
                                gboolean              change_saved_state,
+                               gboolean              export,
                                GError              **error);
 
 
diff --git a/app/widgets/gimpdnd-xds.c b/app/widgets/gimpdnd-xds.c
index 88183fc..1b4c433 100644
--- a/app/widgets/gimpdnd-xds.c
+++ b/app/widgets/gimpdnd-xds.c
@@ -120,7 +120,8 @@ gimp_dnd_xds_save_image (GdkDragContext   *context,
   gint                 length;
   guchar              *data;
   gchar               *uri;
-  GError              *error = NULL;
+  gboolean             export = FALSE;
+  GError              *error  = NULL;
 
   g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
   g_return_if_fail (GIMP_IS_IMAGE (image));
@@ -142,8 +143,12 @@ gimp_dnd_xds_save_image (GdkDragContext   *context,
   proc = file_procedure_find (image->gimp->plug_in_manager->save_procs, uri,
                               NULL);
   if (! proc)
-    proc = file_procedure_find (image->gimp->plug_in_manager->export_procs, uri,
-                                NULL);
+    {
+      proc = file_procedure_find (image->gimp->plug_in_manager->export_procs, uri,
+                                  NULL);
+
+      export = TRUE;
+    }
 
   if (proc)
     {
@@ -157,7 +162,7 @@ gimp_dnd_xds_save_image (GdkDragContext   *context,
         {
           if (file_save (image->gimp,
                          image, NULL,
-                         uri, proc, GIMP_RUN_INTERACTIVE, TRUE,
+                         uri, proc, GIMP_RUN_INTERACTIVE, TRUE, export,
                          &error) == GIMP_PDB_SUCCESS)
             {
               gtk_selection_data_set (selection,



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