[gimp/gimp-2-10] plug-ins: use separate function for adding multiple values per tag
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] plug-ins: use separate function for adding multiple values per tag
- Date: Sat, 25 Sep 2021 19:36:45 +0000 (UTC)
commit 7a7f209cee0d088d52f481863c254d7f484ddcfd
Author: Jacob Boerema <jgboerema gmail com>
Date: Fri Sep 24 15:14:48 2021 -0400
plug-ins: use separate function for adding multiple values per tag
In the metadata-viewer refactor the code that adds multiple values per tag
to the list store into a separate function.
Currently used for IPTC tags only but the intention is to reuse it for
XMP tags with multiple values.
(cherry picked from commit e9ab89fa4faed609793bc6149737f73d46d68cb1)
# Conflicts:
# plug-ins/metadata/metadata-viewer.c
plug-ins/metadata/metadata-viewer.c | 68 ++++++++++++++++++++++++-------------
1 file changed, 45 insertions(+), 23 deletions(-)
---
diff --git a/plug-ins/metadata/metadata-viewer.c b/plug-ins/metadata/metadata-viewer.c
index 0f19ffdf6e..e12f30e8e6 100644
--- a/plug-ins/metadata/metadata-viewer.c
+++ b/plug-ins/metadata/metadata-viewer.c
@@ -85,6 +85,11 @@ static gboolean metadata_viewer_dialog (gint32 image_id,
GError **error);
static void metadata_dialog_set_metadata (GExiv2Metadata *metadata,
GtkBuilder *builder);
+static void metadata_dialog_add_multiple_values (GExiv2Metadata *metadata,
+ const gchar *tag,
+ GtkListStore *store,
+ gint tag_column,
+ gint value_column);
static void metadata_dialog_append_tags (GExiv2Metadata *metadata,
gchar **tags,
GtkListStore *store,
@@ -424,6 +429,42 @@ metadata_interpret_user_comment (gchar *comment)
return comment;
}
+static void
+metadata_dialog_add_multiple_values (GExiv2Metadata *metadata,
+ const gchar *tag,
+ GtkListStore *store,
+ gint tag_column,
+ gint value_column)
+{
+ gchar **values;
+
+ values = gexiv2_metadata_get_tag_multiple (GEXIV2_METADATA (metadata), tag);
+
+ if (values)
+ {
+ gint i;
+
+ for (i = 0; values[i] != NULL; i++)
+ {
+ gchar *value;
+ GtkTreeIter iter;
+
+ gtk_list_store_append (store, &iter);
+
+ value = metadata_format_string_value (values[i], /* truncate = */ TRUE);
+
+ gtk_list_store_set (store, &iter,
+ tag_column, tag,
+ value_column, value,
+ -1);
+
+ g_free (value);
+ }
+
+ g_strfreev (values);
+ }
+}
+
static void
metadata_dialog_append_tags (GExiv2Metadata *metadata,
gchar **tags,
@@ -457,29 +498,10 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata,
}
last_tag = tag;
- values = gexiv2_metadata_get_tag_multiple (GEXIV2_METADATA (metadata),
- tag);
-
- if (values)
- {
- gint i;
-
- for (i = 0; values[i] != NULL; i++)
- {
- gtk_list_store_append (store, &iter);
-
- value = metadata_format_string_value (values[i], /* truncate = */ TRUE);
-
- gtk_list_store_set (store, &iter,
- tag_column, tag,
- value_column, value,
- -1);
-
- g_free (value);
- }
-
- g_strfreev (values);
- }
+ metadata_dialog_add_multiple_values (GEXIV2_METADATA (metadata),
+ tag, store,
+ tag_column,
+ value_column);
}
else if (! strcmp ("Exif.GPSInfo.GPSLongitude", tag) ||
! strcmp ("Exif.GPSInfo.GPSLongitudeRef", tag) ||
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]