diff --git a/plug-ins/metadata/meson.build b/plug-ins/metadata/meson.build index a02d1a7ce9..ea01ee0828 100644 --- a/plug-ins/metadata/meson.build +++ b/plug-ins/metadata/meson.build @@ -45,6 +45,7 @@ plugin_name = 'metadata-viewer' plugin_sourcecode = [ 'metadata-viewer.c', + 'metadata-tag-object.c', 'metadata-tags.c', ] plugin_sources = plugin_sourcecode diff --git a/plug-ins/metadata/metadata-tag-object.c b/plug-ins/metadata/metadata-tag-object.c new file mode 100644 index 0000000000..32da1187e9 --- /dev/null +++ b/plug-ins/metadata/metadata-tag-object.c @@ -0,0 +1,94 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995 Spencer Kimball and Peter Mattis + * + * metadata-tag.c + * Copyright (C) 2024 Niels De Graef + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" + +#include +#include + +#include "metadata-tag-object.h" + +struct _GimpMetadataTagObject +{ + GObject parent_instance; + + gchar *tag; + gchar *value; +}; + +G_DEFINE_TYPE (GimpMetadataTagObject, gimp_metadata_tag_object, G_TYPE_OBJECT); + +static void gimp_metadata_tag_object_finalize (GObject *object); + +static void +gimp_metadata_tag_object_finalize (GObject *object) +{ + GimpMetadataTagObject *self = GIMP_METADATA_TAG_OBJECT (object); + + g_free (self->tag); + g_free (self->value); + + G_OBJECT_CLASS (gimp_metadata_tag_object_parent_class)->finalize (object); +} + +static void +gimp_metadata_tag_object_init (GimpMetadataTagObject *self) +{ +} + +static void +gimp_metadata_tag_object_class_init (GimpMetadataTagObjectClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = gimp_metadata_tag_object_finalize; +} + +GimpMetadataTagObject * +gimp_metadata_tag_object_new (const gchar *tag, + const gchar *value) +{ + GimpMetadataTagObject *self; + + g_return_val_if_fail (tag != NULL, NULL); + g_return_val_if_fail (value != NULL, NULL); + + self = g_object_new (GIMP_TYPE_METADATA_TAG_OBJECT, NULL); + self->tag = g_strdup (tag); + self->value = g_strdup (value); + + return self; +} + +const gchar * +gimp_metadata_tag_object_get_tag (GimpMetadataTagObject *self) +{ + g_return_val_if_fail (GIMP_IS_METADATA_TAG_OBJECT (self), NULL); + + return self->tag; +} + +const gchar * +gimp_metadata_tag_object_get_value (GimpMetadataTagObject *self) +{ + g_return_val_if_fail (GIMP_IS_METADATA_TAG_OBJECT (self), NULL); + + return self->value; +} diff --git a/plug-ins/metadata/metadata-tag-object.h b/plug-ins/metadata/metadata-tag-object.h new file mode 100644 index 0000000000..00241bd1fb --- /dev/null +++ b/plug-ins/metadata/metadata-tag-object.h @@ -0,0 +1,36 @@ +/* GIMP - The GNU Image Manipulation Program + * Copyright (C) 1995 Spencer Kimball and Peter Mattis + * + * Copyright (C) 2024 Niels De Graef + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __METADATA_TAG_OBJECT_H__ +#define __METADATA_TAG_OBJECT_H__ + +#include + +#define GIMP_TYPE_METADATA_TAG_OBJECT (gimp_metadata_tag_object_get_type ()) +G_DECLARE_FINAL_TYPE (GimpMetadataTagObject, gimp_metadata_tag_object, + GIMP, METADATA_TAG_OBJECT, + GObject); + +GimpMetadataTagObject * gimp_metadata_tag_object_new (const gchar *tag, + const gchar *value); + +const gchar * gimp_metadata_tag_object_get_tag (GimpMetadataTagObject *self); +const gchar * gimp_metadata_tag_object_get_value (GimpMetadataTagObject *self); + +#endif /* __METADATA_TAG_OBJECT_H__ */ diff --git a/plug-ins/metadata/metadata-viewer.c b/plug-ins/metadata/metadata-viewer.c index 2ac7e8ac4a..c8fad3233c 100644 --- a/plug-ins/metadata/metadata-viewer.c +++ b/plug-ins/metadata/metadata-viewer.c @@ -28,6 +28,7 @@ #include "libgimp/stdplugins-intl.h" +#include "metadata-tag-object.h" #include "metadata-tags.h" #define PLUG_IN_PROC "plug-in-metadata-viewer" @@ -47,46 +48,14 @@ #define RAW_DATA_MAX_SIZE 16 -enum -{ - C_XMP_TAG = 0, - C_XMP_VALUE, - NUM_XMP_COLS -}; +#define GIMP_TYPE_METADATA_VIEWER (gimp_metadata_viewer_get_type ()) +G_DECLARE_FINAL_TYPE (GimpMetadataViewer, gimp_metadata_viewer, GIMP, METADATA_VIEWER, GimpPlugIn) -enum -{ - C_EXIF_TAG = 0, - C_EXIF_VALUE, - NUM_EXIF_COLS -}; - -enum -{ - C_IPTC_TAG = 0, - C_IPTC_VALUE, - NUM_IPTC_COLS -}; - - -typedef struct _Metadata Metadata; -typedef struct _MetadataClass MetadataClass; - -struct _Metadata +struct _GimpMetadataViewer { GimpPlugIn parent_instance; }; -struct _MetadataClass -{ - GimpPlugInClass parent_class; -}; - - -#define METADATA_TYPE (metadata_get_type ()) -#define METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), METADATA_TYPE, Metadata)) - -GType metadata_get_type (void) G_GNUC_CONST; static GList * metadata_query_procedures (GimpPlugIn *plug_in); static GimpProcedure * metadata_create_procedure (GimpPlugIn *plug_in, @@ -103,29 +72,23 @@ static gboolean metadata_viewer_dialog (GimpImage *image, GimpMetadata *g_metadata, GError **error); static void metadata_dialog_set_metadata (GExiv2Metadata *metadata, - GtkListStore *exif_store, - GtkListStore *xmp_store, - GtkListStore *iptc_store); + GListStore *exif_store, + GListStore *xmp_store, + GListStore *iptc_store); +static GtkWidget * create_widget_for_tag_object (gpointer item, + gpointer user_data); static void metadata_dialog_add_multiple_values (GExiv2Metadata *metadata, const gchar *tag, - GtkListStore *store, - gint tag_column, - gint value_column); + GListStore *store); static void metadata_dialog_append_tags (GExiv2Metadata *metadata, gchar **tags, - GtkListStore *store, - gint tag_column, - gint value_column, + GListStore *store, gboolean load_iptc); -static void metadata_dialog_add_tag (GtkListStore *store, - gint tag_column, - gint value_column, +static void metadata_dialog_add_tag (GListStore *store, const gchar *tag, const gchar *value); static void metadata_dialog_add_translated_tag (GExiv2Metadata *metadata, - GtkListStore *store, - gint tag_column, - gint value_column, + GListStore *store, const gchar *tag); static gchar * metadata_interpret_user_comment (gchar *comment); static gchar * metadata_dialog_format_tag_value (GExiv2Metadata *metadata, @@ -136,14 +99,14 @@ static gchar * metadata_format_string_value (const gchar *value, static inline gboolean metadata_tag_is_string (const gchar *tag); -G_DEFINE_TYPE (Metadata, metadata, GIMP_TYPE_PLUG_IN) +G_DEFINE_TYPE (GimpMetadataViewer, gimp_metadata_viewer, GIMP_TYPE_PLUG_IN) -GIMP_MAIN (METADATA_TYPE) +GIMP_MAIN (GIMP_TYPE_METADATA_VIEWER) DEFINE_STD_SET_I18N static void -metadata_class_init (MetadataClass *klass) +gimp_metadata_viewer_class_init (GimpMetadataViewerClass *klass) { GimpPlugInClass *plug_in_class = GIMP_PLUG_IN_CLASS (klass); @@ -153,7 +116,7 @@ metadata_class_init (MetadataClass *klass) } static void -metadata_init (Metadata *metadata) +gimp_metadata_viewer_init (GimpMetadataViewer *self) { } @@ -242,11 +205,10 @@ metadata_viewer_dialog (GimpImage *image, GtkWidget *metadata_vbox; GtkWidget *notebook; GtkWidget *scrolled_win; - GtkWidget *list_view; + GtkWidget *list_box; GtkWidget *label; - GtkListStore *exif_store, *xmp_store, *iptc_store; - GtkCellRenderer *rend; - GtkTreeViewColumn *col; + GtkSizeGroup *tag_size_group; + GListStore *exif_store, *xmp_store, *iptc_store; GExiv2Metadata *metadata; metadata = GEXIV2_METADATA(g_metadata); @@ -288,36 +250,21 @@ metadata_viewer_dialog (GimpImage *image, gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 6); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win), GTK_SHADOW_IN); - exif_store = gtk_list_store_new (NUM_EXIF_COLS, - G_TYPE_STRING, /* column-name c_exif_tag */ - G_TYPE_STRING); /* column-name c_exif_value */ - list_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (exif_store)); - gtk_widget_set_vexpand (list_view, TRUE); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (_("Exif Tag"), - rend, - "text", C_EXIF_TAG, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (C_("A tag value", "Value"), - rend, - "text", C_EXIF_VALUE, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); + exif_store = g_list_store_new (GIMP_TYPE_METADATA_TAG_OBJECT); + list_box = gtk_list_box_new (); + gtk_list_box_set_selection_mode (GTK_LIST_BOX (list_box), + GTK_SELECTION_NONE); + tag_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + gtk_list_box_bind_model (GTK_LIST_BOX (list_box), G_LIST_MODEL (exif_store), + create_widget_for_tag_object, tag_size_group, g_object_unref); + gtk_widget_set_vexpand (list_box, TRUE); label = gtk_label_new (_("Exif")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled_win, label); - gtk_container_add (GTK_CONTAINER (scrolled_win), list_view); - gtk_widget_show (list_view); + gtk_container_add (GTK_CONTAINER (scrolled_win), list_box); + gtk_widget_show (list_box); gtk_widget_show (scrolled_win); /* XMP tab */ @@ -326,36 +273,21 @@ metadata_viewer_dialog (GimpImage *image, gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 6); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win), GTK_SHADOW_IN); - xmp_store = gtk_list_store_new (NUM_XMP_COLS, - G_TYPE_STRING, /* column-name c_xmp_tag */ - G_TYPE_STRING); /* column-name c_xmp_value */ - list_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (xmp_store)); - gtk_widget_set_vexpand (list_view, TRUE); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (_("XMP Tag"), - rend, - "text", C_XMP_TAG, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (C_("A tag value", "Value"), - rend, - "text", C_XMP_VALUE, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); + xmp_store = g_list_store_new (GIMP_TYPE_METADATA_TAG_OBJECT); + list_box = gtk_list_box_new (); + gtk_list_box_set_selection_mode (GTK_LIST_BOX (list_box), + GTK_SELECTION_NONE); + tag_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + gtk_list_box_bind_model (GTK_LIST_BOX (list_box), G_LIST_MODEL (xmp_store), + create_widget_for_tag_object, tag_size_group, g_object_unref); + gtk_widget_set_vexpand (list_box, TRUE); label = gtk_label_new (_("XMP")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled_win, label); - gtk_container_add (GTK_CONTAINER (scrolled_win), list_view); - gtk_widget_show (list_view); + gtk_container_add (GTK_CONTAINER (scrolled_win), list_box); + gtk_widget_show (list_box); gtk_widget_show (scrolled_win); /* IPTC tab */ @@ -364,41 +296,26 @@ metadata_viewer_dialog (GimpImage *image, gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 6); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win), GTK_SHADOW_IN); - iptc_store = gtk_list_store_new (NUM_IPTC_COLS, - G_TYPE_STRING, /* column-name c_iptc_tag */ - G_TYPE_STRING); /* column-name c_iptc_value */ - list_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (iptc_store)); - gtk_widget_set_vexpand (list_view, TRUE); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (_("IPTC Tag"), - rend, - "text", C_IPTC_TAG, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); - - rend = gtk_cell_renderer_text_new (); - col = gtk_tree_view_column_new_with_attributes (C_("A tag value", "Value"), - rend, - "text", C_IPTC_VALUE, - NULL); - gtk_tree_view_column_set_resizable (col, TRUE); - gtk_tree_view_column_set_spacing (col, 3); - gtk_tree_view_append_column (GTK_TREE_VIEW (list_view), col); + iptc_store = g_list_store_new (GIMP_TYPE_METADATA_TAG_OBJECT); + list_box = gtk_list_box_new (); + gtk_list_box_set_selection_mode (GTK_LIST_BOX (list_box), + GTK_SELECTION_NONE); + tag_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + gtk_list_box_bind_model (GTK_LIST_BOX (list_box), G_LIST_MODEL (iptc_store), + create_widget_for_tag_object, tag_size_group, g_object_unref); + gtk_widget_set_vexpand (list_box, TRUE); label = gtk_label_new (_("IPTC")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled_win, label); - gtk_container_add (GTK_CONTAINER (scrolled_win), list_view); - gtk_widget_show (list_view); + gtk_container_add (GTK_CONTAINER (scrolled_win), list_box); + gtk_widget_show (list_box); gtk_widget_show (scrolled_win); gtk_widget_show (notebook); - /* Add the metadata to the tree views */ + /* Add the metadata to the list models */ metadata_dialog_set_metadata (metadata, exif_store, xmp_store, iptc_store); g_object_unref (exif_store); @@ -415,34 +332,66 @@ metadata_viewer_dialog (GimpImage *image, static void metadata_dialog_set_metadata (GExiv2Metadata *metadata, - GtkListStore *exif_store, - GtkListStore *xmp_store, - GtkListStore *iptc_store) + GListStore *exif_store, + GListStore *xmp_store, + GListStore *iptc_store) { gchar **tags; /* load exif tags */ tags = gexiv2_metadata_get_exif_tags (metadata); - metadata_dialog_append_tags (metadata, tags, exif_store, C_EXIF_TAG, C_EXIF_VALUE, FALSE); + metadata_dialog_append_tags (metadata, tags, exif_store, FALSE); g_strfreev (tags); /* load xmp tags */ tags = gexiv2_metadata_get_xmp_tags (metadata); - metadata_dialog_append_tags (metadata, tags, xmp_store, C_XMP_TAG, C_XMP_VALUE, FALSE); + metadata_dialog_append_tags (metadata, tags, xmp_store, FALSE); g_strfreev (tags); /* load iptc tags */ tags = gexiv2_metadata_get_iptc_tags (metadata); - metadata_dialog_append_tags (metadata, tags, iptc_store, C_IPTC_TAG, C_IPTC_VALUE, TRUE); + metadata_dialog_append_tags (metadata, tags, iptc_store, TRUE); g_strfreev (tags); } +static GtkWidget * +create_widget_for_tag_object (gpointer item, + gpointer user_data) +{ + GimpMetadataTagObject *tag_obj = GIMP_METADATA_TAG_OBJECT (item); + GtkSizeGroup *tag_size_group = GTK_SIZE_GROUP (user_data); + GtkWidget *row; + GtkWidget *box; + GtkWidget *tag_label; + GtkWidget *value_label; + + row = gtk_list_box_row_new (); + gtk_widget_show (row); + + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_container_add (GTK_CONTAINER (row), box); + gtk_widget_show (box); + + tag_label = gtk_label_new (gimp_metadata_tag_object_get_tag (tag_obj)); + gtk_label_set_xalign (GTK_LABEL (tag_label), 0.0); + gtk_size_group_add_widget (tag_size_group, tag_label); + gtk_widget_show (tag_label); + gtk_box_pack_start (GTK_BOX (box), tag_label, FALSE, FALSE, 6); + + value_label = gtk_label_new (gimp_metadata_tag_object_get_value (tag_obj)); + gtk_label_set_selectable (GTK_LABEL (value_label), TRUE); + gtk_widget_show (value_label); + gtk_box_pack_start (GTK_BOX (box), value_label, FALSE, FALSE, 6); + + return row; +} + static gchar * metadata_format_string_value (const gchar *value, gboolean truncate) @@ -497,29 +446,23 @@ metadata_tag_is_string (const gchar *tag) } static void -metadata_dialog_add_tag (GtkListStore *store, - gint tag_column, - gint value_column, +metadata_dialog_add_tag (GListStore *store, const gchar *tag, const gchar *value) { - if (value) - { - GtkTreeIter iter; + GimpMetadataTagObject *tag_object; - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, - tag_column, tag, - value_column, value, - -1); - } + if (value == NULL) + return; + + tag_object = gimp_metadata_tag_object_new (tag, value); + g_list_store_append (store, tag_object); + g_object_unref (tag_object); } static void metadata_dialog_add_translated_tag (GExiv2Metadata *metadata, - GtkListStore *store, - gint tag_column, - gint value_column, + GListStore *store, const gchar *tag) { gchar *value = NULL; @@ -533,8 +476,7 @@ metadata_dialog_add_translated_tag (GExiv2Metadata *metadata, g_clear_error (&error); } - metadata_dialog_add_tag (store, tag_column, value_column, - tag, gettext (value)); + metadata_dialog_add_tag (store, tag, gettext (value)); g_free (value); } @@ -574,9 +516,7 @@ metadata_interpret_user_comment (gchar *comment) static void metadata_dialog_add_multiple_values (GExiv2Metadata *metadata, const gchar *tag, - GtkListStore *store, - gint tag_column, - gint value_column) + GListStore *store) { gchar **values; GError *error = NULL; @@ -589,37 +529,25 @@ metadata_dialog_add_multiple_values (GExiv2Metadata *metadata, g_clear_error (&error); } - if (values) + if (values == NULL) + return; + + for (gsize i = 0; values[i] != NULL; i++) { - gint i; + gchar *value; - 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); + value = metadata_format_string_value (values[i], /* truncate = */ TRUE); + metadata_dialog_add_tag (store, tag, value); + g_free (value); } + + g_strfreev (values); } static void metadata_dialog_append_tags (GExiv2Metadata *metadata, gchar **tags, - GtkListStore *store, - gint tag_column, - gint value_column, + GListStore *store, gboolean load_iptc) { const gchar *tag; @@ -646,9 +574,7 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, last_tag = tag; metadata_dialog_add_multiple_values (GEXIV2_METADATA (metadata), - tag, store, - tag_column, - value_column); + tag, store); } else if (! strcmp ("Exif.GPSInfo.GPSLongitude", tag) || ! strcmp ("Exif.GPSInfo.GPSLongitudeRef", tag) || @@ -671,7 +597,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, { str = metadata_format_gps_longitude_latitude (lng); metadata_dialog_add_tag (store, - tag_column, value_column, "Exif.GPSInfo.GPSLongitude", str); g_free (str); @@ -684,7 +609,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, } metadata_dialog_add_translated_tag (metadata, store, - tag_column, value_column, "Exif.GPSInfo.GPSLongitudeRef"); if (gexiv2_metadata_try_get_gps_latitude (GEXIV2_METADATA (metadata), @@ -692,7 +616,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, { str = metadata_format_gps_longitude_latitude (lat); metadata_dialog_add_tag (store, - tag_column, value_column, "Exif.GPSInfo.GPSLatitude", str); g_free (str); @@ -705,7 +628,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, } metadata_dialog_add_translated_tag (metadata, store, - tag_column, value_column, "Exif.GPSInfo.GPSLatitudeRef"); if (gexiv2_metadata_try_get_gps_altitude (GEXIV2_METADATA (metadata), @@ -718,7 +640,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, str2 = metadata_format_gps_altitude (alt, FALSE, _(" feet")); str3 = g_strdup_printf ("%s (%s)", str, str2); metadata_dialog_add_tag (store, - tag_column, value_column, "Exif.GPSInfo.GPSAltitude", str3); g_free (str); @@ -746,7 +667,6 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, else index = 0; metadata_dialog_add_tag (store, - tag_column, value_column, "Exif.GPSInfo.GPSAltitudeRef", gettext (gpsaltref[index])); g_free (value); @@ -776,9 +696,7 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, /* Can start with charset. Remove part that is not relevant. */ value = metadata_interpret_user_comment (value); - metadata_dialog_add_tag (store, - tag_column, value_column, - tag, value); + metadata_dialog_add_tag (store, tag, value); g_free (value); } else @@ -798,18 +716,14 @@ metadata_dialog_append_tags (GExiv2Metadata *metadata, else if (g_strcmp0 (tag_type, "XmpText") != 0) { metadata_dialog_add_multiple_values (GEXIV2_METADATA (metadata), - tag, store, - tag_column, - value_column); + tag, store); continue; } } value = metadata_dialog_format_tag_value (metadata, tag, /* truncate = */ TRUE); - metadata_dialog_add_tag (store, - tag_column, value_column, - tag, value); + metadata_dialog_add_tag (store, tag, value); g_free (value); } }