[gimp/wip/wormnest/iptc-multiple-keys: 16/17] plug-ins: fix metadata-editor not saving Xmp.photoshop.Urgency and Xmp.xmpRights.Marked.




commit 14b206d0051b865ed46e31fa17be0d1e76a799ef
Author: Jacob Boerema <jgboerema gmail com>
Date:   Thu Nov 19 16:48:13 2020 -0500

    plug-ins: fix metadata-editor not saving Xmp.photoshop.Urgency and Xmp.xmpRights.Marked.
    
    The values of Description tab - Copyright Status and IPTC tab - Urgency were not saved.
    We are fixing that with this commit. Urgency is also saved to Iptc.Application2.Urgency.

 plug-ins/metadata/metadata-editor.c | 51 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)
---
diff --git a/plug-ins/metadata/metadata-editor.c b/plug-ins/metadata/metadata-editor.c
index 1091bca0f4..e5eccd9e24 100644
--- a/plug-ins/metadata/metadata-editor.c
+++ b/plug-ins/metadata/metadata-editor.c
@@ -5492,7 +5492,56 @@ metadata_editor_write_callback (GtkWidget  *dialog,
           combo = GTK_COMBO_BOX_TEXT (object);
           value = gtk_combo_box_get_active (GTK_COMBO_BOX (combo));
 
-          if (! strcmp ("Xmp.xmp.Rating", default_metadata_tags[i].tag))
+          if (! strcmp ("Xmp.photoshop.Urgency", default_metadata_tags[i].tag))
+            {
+              /* IPTC tab - Urgency */
+              if (value == 0)
+                {
+                  gexiv2_metadata_clear_tag (GEXIV2_METADATA (g_metadata),
+                                             default_metadata_tags[i].tag);
+                  gexiv2_metadata_clear_tag (GEXIV2_METADATA (g_metadata),
+                                             "Iptc.Application2.Urgency");
+                }
+              else
+                {
+                  gchar *save;
+
+                  save = g_strdup_printf ("%d", value);
+
+                  gexiv2_metadata_set_tag_string (GEXIV2_METADATA (g_metadata),
+                                                  default_metadata_tags[i].tag,
+                                                  save);
+                  gexiv2_metadata_set_tag_string (GEXIV2_METADATA (g_metadata),
+                                                  "Iptc.Application2.Urgency",
+                                                  save);
+                  g_free (save);
+                }
+            }
+          else if (! strcmp ("Xmp.xmpRights.Marked",
+                             default_metadata_tags[i].tag))
+            {
+              /* Description tab - Copyright Status */
+              if (value == 0)
+                {
+                  gexiv2_metadata_clear_tag (GEXIV2_METADATA (g_metadata),
+                                             default_metadata_tags[i].tag);
+                }
+              else
+                {
+                  gchar *save_value;
+
+                  if (value == 1)
+                    save_value = g_strdup_printf ("%s", "True");
+                  else /* (value == 2) */
+                    save_value = g_strdup_printf ("%s", "False");
+
+                  gexiv2_metadata_set_tag_string (GEXIV2_METADATA (g_metadata),
+                                                  default_metadata_tags[i].tag,
+                                                  save_value);
+                  g_free (save_value);
+                }
+            }
+          else if (! strcmp ("Xmp.xmp.Rating", default_metadata_tags[i].tag))
             {
               if (value == 0)
                 {


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