[gimp/wip/wormnest/iptc-multiple-keys: 15/17] plug-ins: let metadata-editor also save Iptc tags.
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/wip/wormnest/iptc-multiple-keys: 15/17] plug-ins: let metadata-editor also save Iptc tags.
- Date: Thu, 19 Nov 2020 23:01:29 +0000 (UTC)
commit bd7eac2067ef7ddef72d4642edf54c2e3fa04fb6
Author: Jacob Boerema <jgboerema gmail com>
Date: Thu Nov 19 16:39:45 2020 -0500
plug-ins: let metadata-editor also save Iptc tags.
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 7f2dee851b..1091bca0f4 100644
--- a/plug-ins/metadata/metadata-editor.c
+++ b/plug-ins/metadata/metadata-editor.c
@@ -5325,6 +5325,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 ||
@@ -5373,6 +5374,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);
+ }
+ }
}
}
@@ -5385,6 +5400,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);
@@ -5439,6 +5455,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]