[gimp] app: also copy the metadata in gimp_image_duplicate()



commit c2eda33c1cbb4dc3d23beb4b363832048d03c245
Author: Michael Natterer <mitch gimp org>
Date:   Thu Nov 21 21:43:28 2013 +0100

    app: also copy the metadata in gimp_image_duplicate()

 app/core/gimpimage-duplicate.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/app/core/gimpimage-duplicate.c b/app/core/gimpimage-duplicate.c
index 9ea405f..2219f44 100644
--- a/app/core/gimpimage-duplicate.c
+++ b/app/core/gimpimage-duplicate.c
@@ -22,6 +22,8 @@
 
 #include "core-types.h"
 
+#include "libgimpbase/gimpbase.h"
+
 #include "gimp.h"
 #include "gimpchannel.h"
 #include "gimpguide.h"
@@ -30,6 +32,7 @@
 #include "gimpimage-duplicate.h"
 #include "gimpimage-grid.h"
 #include "gimpimage-guides.h"
+#include "gimpimage-metadata.h"
 #include "gimpimage-private.h"
 #include "gimpimage-undo.h"
 #include "gimpimage-sample-points.h"
@@ -69,6 +72,8 @@ static void          gimp_image_duplicate_sample_points   (GimpImage     *image,
                                                            GimpImage     *new_image);
 static void          gimp_image_duplicate_grid            (GimpImage     *image,
                                                            GimpImage     *new_image);
+static void          gimp_image_duplicate_metadata        (GimpImage     *image,
+                                                           GimpImage     *new_image);
 static void          gimp_image_duplicate_quick_mask      (GimpImage     *image,
                                                            GimpImage     *new_image);
 static void          gimp_image_duplicate_parasites       (GimpImage     *image,
@@ -143,6 +148,9 @@ gimp_image_duplicate (GimpImage *image)
   /*  Copy the grid  */
   gimp_image_duplicate_grid (image, new_image);
 
+  /*  Copy the metadata  */
+  gimp_image_duplicate_metadata (image, new_image);
+
   /*  Copy the quick mask info  */
   gimp_image_duplicate_quick_mask (image, new_image);
 
@@ -464,6 +472,20 @@ gimp_image_duplicate_grid (GimpImage *image,
 }
 
 static void
+gimp_image_duplicate_metadata (GimpImage *image,
+                               GimpImage *new_image)
+{
+  GimpMetadata *metadata = gimp_image_get_metadata (image);
+
+  if (metadata)
+    {
+      metadata = gimp_metadata_duplicate (metadata);
+      gimp_image_set_metadata (new_image, metadata, FALSE);
+      g_object_unref (metadata);
+    }
+}
+
+static void
 gimp_image_duplicate_quick_mask (GimpImage *image,
                                  GimpImage *new_image)
 {


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