[gimp/gimp-2-10] plug-ins: let metadata-editor also save Iptc tags.
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] plug-ins: let metadata-editor also save Iptc tags.
- Date: Fri, 20 Nov 2020 02:51:21 +0000 (UTC)
commit 78d4806c6bbbf0b4e4aef5d6a5bf37a2f1f61389
Author: Jacob Boerema <jgboerema gmail com>
Date: Thu Nov 19 16:39:45 2020 -0500
plug-ins: let metadata-editor also save Iptc tags.
(cherry picked from commit 47065df53cab92cb23036fcf1a8aaf7afbeb3c29)
plug-ins/metadata/metadata-editor.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
---
diff --git a/plug-ins/metadata/metadata-editor.c b/plug-ins/metadata/metadata-editor.c
index 66b8fa9944..950b88246f 100644
--- a/plug-ins/metadata/metadata-editor.c
+++ b/plug-ins/metadata/metadata-editor.c
@@ -5309,6 +5309,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
}
else
{
+ gint index;
const gchar *text_value = gtk_entry_get_text (entry);
if (default_metadata_tags[i].xmp_type == GIMP_XMP_TEXT ||
@@ -5357,6 +5358,20 @@ metadata_editor_write_callback (GtkWidget *dialog,
default_metadata_tags[i].tag);
}
}
+
+ index = default_metadata_tags[i].other_tag_index;
+ if (index > -1)
+ {
+ gexiv2_metadata_clear_tag (GEXIV2_METADATA (g_metadata),
+ equivalent_metadata_tags[index].tag);
+ if (! gexiv2_metadata_set_tag_string (GEXIV2_METADATA (g_metadata),
+ equivalent_metadata_tags[index].tag,
+ text_value))
+ {
+ g_printerr ("failed to set tag [%s]\n",
+ equivalent_metadata_tags[index].tag);
+ }
+ }
}
}
@@ -5369,6 +5384,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
GtkTextIter start;
GtkTextIter end;
gchar *text;
+ gint index;
buffer = gtk_text_view_get_buffer (text_view);
gtk_text_buffer_get_start_iter (buffer, &start);
@@ -5423,6 +5439,25 @@ metadata_editor_write_callback (GtkWidget *dialog,
}
}
+ index = default_metadata_tags[i].other_tag_index;
+ if (index > -1)
+ {
+ gchar **multi;
+
+ gexiv2_metadata_clear_tag (GEXIV2_METADATA (g_metadata),
+ equivalent_metadata_tags[index].tag);
+ multi = g_strsplit (text, "\n", 0);
+ if (! gexiv2_metadata_set_tag_multiple (GEXIV2_METADATA (g_metadata),
+ equivalent_metadata_tags[index].tag,
+ (const gchar **) multi))
+ {
+ g_printerr ("failed to set tag [%s]\n",
+ equivalent_metadata_tags[index].tag);
+ }
+
+ g_strfreev (multi);
+ }
+
if (text)
g_free (text);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]