[gimp/gimp-2-10] plug-ins: use separate function for adding multiple values per tag



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]