mirror of https://github.com/GNOME/gimp.git
plug-ins: make mode in metadata-editor an enum
We were using a string for the metadata mode, meaning we had to compare string values in a lot of places. We simplify and probably speed-up comparisons here by replacing the mode string by an enum value. The only place still needing the string values sometimes is metadata-impexp.[ch] where we added a conversion table to convert the mode to a string.
This commit is contained in:
parent
5ccac0dd9b
commit
4e40a3edd2
|
@ -1730,14 +1730,14 @@ hasImageSupplierTagData (metadata_editor *meta_info)
|
|||
|
||||
object = metadata_editor_get_widget (meta_info, imageSupplierInfoTags[loop].id);
|
||||
|
||||
if (! strcmp (imageSupplierInfoTags[loop].mode, "single"))
|
||||
if (imageSupplierInfoTags[loop].mode == MODE_SINGLE)
|
||||
{
|
||||
text = gtk_entry_get_text (GTK_ENTRY (object));
|
||||
|
||||
if (text && *text)
|
||||
return TRUE;
|
||||
}
|
||||
else if (! strcmp (imageSupplierInfoTags[loop].mode, "multi"))
|
||||
else if (imageSupplierInfoTags[loop].mode == MODE_MULTI)
|
||||
{
|
||||
text = gtk_entry_get_text (GTK_ENTRY (object));
|
||||
|
||||
|
@ -1761,7 +1761,7 @@ hasLocationCreationTagData (metadata_editor *meta_info)
|
|||
|
||||
widget = metadata_editor_get_widget (meta_info, locationCreationInfoTags[loop].id);
|
||||
|
||||
if (! strcmp (locationCreationInfoTags[loop].mode, "single"))
|
||||
if (locationCreationInfoTags[loop].mode == MODE_SINGLE)
|
||||
{
|
||||
text = gtk_entry_get_text (GTK_ENTRY (widget));
|
||||
|
||||
|
@ -2678,11 +2678,11 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
value_utf = clean_xmp_string (value);
|
||||
g_free (value);
|
||||
|
||||
if (! strcmp ("single", imageSupplierInfoTags[i].mode))
|
||||
if (imageSupplierInfoTags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), value_utf);
|
||||
}
|
||||
else if (! strcmp ("multi", imageSupplierInfoTags[i].mode))
|
||||
else if (imageSupplierInfoTags[i].mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
|
||||
|
@ -2711,7 +2711,7 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
value_utf = clean_xmp_string (value);
|
||||
g_free (value);
|
||||
|
||||
if (! strcmp ("single", locationCreationInfoTags[i].mode))
|
||||
if (locationCreationInfoTags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), value_utf);
|
||||
}
|
||||
|
@ -2915,7 +2915,7 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (! strcmp ("multi", equivalent_metadata_tags[index].mode))
|
||||
if (equivalent_metadata_tags[index].mode == MODE_MULTI)
|
||||
{
|
||||
g_string_append (str, "\n");
|
||||
}
|
||||
|
@ -2936,7 +2936,7 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
*/
|
||||
if (value && strcmp (value, str->str))
|
||||
{
|
||||
if (! strcmp ("multi", equivalent_metadata_tags[index].mode))
|
||||
if (equivalent_metadata_tags[index].mode == MODE_MULTI)
|
||||
{
|
||||
g_string_prepend (str, "\n");
|
||||
}
|
||||
|
@ -2953,7 +2953,7 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
}
|
||||
}
|
||||
|
||||
if (!strcmp ("list", default_metadata_tags[i].mode))
|
||||
if (default_metadata_tags[i].mode == MODE_LIST)
|
||||
{
|
||||
/* Tab: IPTC Extension, Label: Location Shown */
|
||||
if (! strcmp ("Xmp.iptcExt.LocationShown",
|
||||
|
@ -4133,18 +4133,18 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
|
||||
if (value)
|
||||
{
|
||||
if (! strcmp ("single", default_metadata_tags[i].mode))
|
||||
if (default_metadata_tags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), value);
|
||||
}
|
||||
else if (! strcmp ("multi", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
|
||||
gtk_text_buffer_set_text (buffer, value, -1);
|
||||
}
|
||||
else if (! strcmp ("combo", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_COMBO)
|
||||
{
|
||||
gint32 data = 0;
|
||||
|
||||
|
@ -4435,11 +4435,11 @@ metadata_dialog_editor_set_metadata (GExiv2Metadata *metadata,
|
|||
value_utf = clean_xmp_string (value);
|
||||
g_free (value);
|
||||
|
||||
if (! strcmp ("single", creatorContactInfoTags[i].mode))
|
||||
if (creatorContactInfoTags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (widget), value_utf);
|
||||
}
|
||||
else if (! strcmp ("multi", creatorContactInfoTags[i].mode))
|
||||
else if (creatorContactInfoTags[i].mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
|
||||
|
@ -4814,14 +4814,14 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
GtkWidget *widget = metadata_editor_get_widget (meta_info,
|
||||
creatorContactInfoTags[i].id);
|
||||
|
||||
if (! strcmp ("single", creatorContactInfoTags[i].mode))
|
||||
if (creatorContactInfoTags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
GtkEntry *entry = GTK_ENTRY (widget);
|
||||
|
||||
set_tag_string (g_metadata, creatorContactInfoTags[i].tag,
|
||||
gtk_entry_get_text (entry), FALSE);
|
||||
}
|
||||
else if (! strcmp ("multi", creatorContactInfoTags[i].mode))
|
||||
else if (creatorContactInfoTags[i].mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
||||
GtkTextBuffer *buffer;
|
||||
|
@ -4868,7 +4868,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
|
||||
/* SINGLE TAGS */
|
||||
|
||||
if (! strcmp ("single", default_metadata_tags[i].mode))
|
||||
if (default_metadata_tags[i].mode == MODE_SINGLE)
|
||||
{
|
||||
GtkEntry *entry = GTK_ENTRY (widget);
|
||||
gchar *value_entry = g_strdup (gtk_entry_get_text (entry));
|
||||
|
@ -4947,7 +4947,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
|
||||
/* MULTI TAGS */
|
||||
|
||||
else if (! strcmp ("multi", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
||||
GtkTextBuffer *buffer;
|
||||
|
@ -5011,7 +5011,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
|
||||
if (text && *text)
|
||||
{
|
||||
if (! strcmp ("multi", equivalent_metadata_tags[index].mode))
|
||||
if (equivalent_metadata_tags[index].mode == MODE_MULTI)
|
||||
{
|
||||
gchar **multi;
|
||||
|
||||
|
@ -5028,7 +5028,7 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
|
||||
g_strfreev (multi);
|
||||
}
|
||||
else if (! strcmp ("single", equivalent_metadata_tags[index].mode))
|
||||
else if (equivalent_metadata_tags[index].mode == MODE_SINGLE)
|
||||
{
|
||||
/* Convert from multiline to single line: keep the \n and just add the whole text. */
|
||||
set_tag_string (g_metadata, equivalent_metadata_tags[index].tag,
|
||||
|
@ -5036,9 +5036,8 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
}
|
||||
else
|
||||
{
|
||||
g_warning ("Copying from multiline tag %s to %s tag %s not implemented!",
|
||||
g_warning ("Copying from multiline tag %s to tag %s not implemented!",
|
||||
default_metadata_tags[i].tag,
|
||||
equivalent_metadata_tags[index].mode,
|
||||
equivalent_metadata_tags[index].tag);
|
||||
}
|
||||
}
|
||||
|
@ -5047,14 +5046,14 @@ metadata_editor_write_callback (GtkWidget *dialog,
|
|||
if (text)
|
||||
g_free (text);
|
||||
}
|
||||
else if (! strcmp ("list", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_LIST)
|
||||
{
|
||||
/* MIGHT DO SOMETHING HERE */
|
||||
}
|
||||
|
||||
/* COMBO TAGS */
|
||||
|
||||
else if (! strcmp ("combo", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_COMBO)
|
||||
{
|
||||
GtkComboBoxText *combo;
|
||||
gint32 value;
|
||||
|
|
|
@ -53,6 +53,19 @@ const GMarkupParser xml_markup_parser =
|
|||
NULL /* error */
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
MetadataMode mode;
|
||||
gchar *mode_string;
|
||||
} MetadataModeConversion;
|
||||
|
||||
const MetadataModeConversion metadata_mode_conversion[] =
|
||||
{
|
||||
{ MODE_SINGLE, "single" },
|
||||
{ MODE_MULTI, "multi" },
|
||||
{ MODE_COMBO, "combo" },
|
||||
{ MODE_LIST, "list" },
|
||||
};
|
||||
|
||||
/* ============================================================================
|
||||
* ==[ METADATA IMPORT TEMPLATE ]==============================================
|
||||
|
@ -118,12 +131,12 @@ export_file_metadata (metadata_editor *args)
|
|||
g_string_append (xmldata, equivalent_metadata_tags[i].tag);
|
||||
g_string_append (xmldata, "</tag-name>\n");
|
||||
g_string_append (xmldata, "\t\t<tag-mode>");
|
||||
g_string_append (xmldata, equivalent_metadata_tags[i].mode);
|
||||
g_string_append (xmldata, metadata_mode_conversion[equivalent_metadata_tags[i].mode].mode_string);
|
||||
g_string_append (xmldata, "</tag-mode>\n");
|
||||
g_string_append (xmldata, "\t\t<tag-value>");
|
||||
|
||||
if (!strcmp("single", default_metadata_tags[index].mode) ||
|
||||
!strcmp("multi", default_metadata_tags[index].mode))
|
||||
if (default_metadata_tags[index].mode == MODE_SINGLE ||
|
||||
default_metadata_tags[index].mode == MODE_MULTI)
|
||||
{
|
||||
const gchar *value;
|
||||
|
||||
|
@ -139,13 +152,13 @@ export_file_metadata (metadata_editor *args)
|
|||
g_free (value_utf);
|
||||
}
|
||||
}
|
||||
else if (!strcmp("combo", default_metadata_tags[index].mode))
|
||||
else if (default_metadata_tags[index].mode == MODE_COMBO)
|
||||
{
|
||||
gint data = get_tag_ui_combo (args, default_metadata_tags[index].tag,
|
||||
default_metadata_tags[index].mode);
|
||||
g_string_append_printf (xmldata, "%d", data);
|
||||
}
|
||||
else if (!strcmp("list", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_LIST)
|
||||
{
|
||||
/* No IPTC lists elements at this point */
|
||||
}
|
||||
|
@ -162,11 +175,11 @@ export_file_metadata (metadata_editor *args)
|
|||
g_string_append (xmldata, default_metadata_tags[i].tag);
|
||||
g_string_append (xmldata, "</tag-name>\n");
|
||||
g_string_append (xmldata, "\t\t<tag-mode>");
|
||||
g_string_append (xmldata, default_metadata_tags[i].mode);
|
||||
g_string_append (xmldata, metadata_mode_conversion[default_metadata_tags[i].mode].mode_string);
|
||||
g_string_append (xmldata, "</tag-mode>\n");
|
||||
|
||||
if (!strcmp("single", default_metadata_tags[i].mode) ||
|
||||
!strcmp("multi", default_metadata_tags[i].mode))
|
||||
if (default_metadata_tags[i].mode == MODE_SINGLE ||
|
||||
default_metadata_tags[i].mode == MODE_MULTI)
|
||||
{
|
||||
const gchar *value;
|
||||
|
||||
|
@ -185,7 +198,7 @@ export_file_metadata (metadata_editor *args)
|
|||
|
||||
g_string_append (xmldata, "</tag-value>\n");
|
||||
}
|
||||
else if (!strcmp("combo", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_COMBO)
|
||||
{
|
||||
gint data;
|
||||
|
||||
|
@ -197,7 +210,7 @@ export_file_metadata (metadata_editor *args)
|
|||
|
||||
g_string_append (xmldata, "</tag-value>\n");
|
||||
}
|
||||
else if (!strcmp("list", default_metadata_tags[i].mode))
|
||||
else if (default_metadata_tags[i].mode == MODE_LIST)
|
||||
{
|
||||
gchar *data;
|
||||
|
||||
|
|
|
@ -29,13 +29,21 @@ typedef struct
|
|||
gchar *filename;
|
||||
} metadata_editor;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MODE_SINGLE,
|
||||
MODE_MULTI,
|
||||
MODE_COMBO,
|
||||
MODE_LIST,
|
||||
} MetadataMode;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gchar *tag;
|
||||
gchar *mode;
|
||||
gint32 other_tag_index;
|
||||
gint32 tag_type;
|
||||
gint32 xmp_type;
|
||||
gchar *tag;
|
||||
MetadataMode mode;
|
||||
gint32 other_tag_index;
|
||||
gint32 tag_type;
|
||||
gint32 xmp_type;
|
||||
} metadata_tag;
|
||||
|
||||
typedef struct
|
||||
|
@ -59,11 +67,11 @@ typedef struct
|
|||
|
||||
typedef struct
|
||||
{
|
||||
gchar *id;
|
||||
gchar *tag;
|
||||
gchar *mode;
|
||||
gint32 other_tag_index;
|
||||
gint32 tag_type;
|
||||
gchar *id;
|
||||
gchar *tag;
|
||||
MetadataMode mode;
|
||||
gint32 other_tag_index;
|
||||
gint32 tag_type;
|
||||
} TranslateTag;
|
||||
|
||||
#endif /* __METADATA_MISC_H__ */
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
#include "metadata-tags.h"
|
||||
|
||||
|
||||
/* The meaning of "single" and "multi" here denotes whether it is used in a
|
||||
* single line or a multi line edit field.
|
||||
/* The meaning of MODE_SINGLE and MODE_MULTI here denotes whether it is used
|
||||
* in a single line or a multi line edit field.
|
||||
* Depending on it's xmp type multi line can be saved as either:
|
||||
* - one tag of type text, possibly including newlines
|
||||
* - an array of tags of the same type for seq and bag, where each line in
|
||||
|
@ -37,138 +37,138 @@
|
|||
const metadata_tag default_metadata_tags[] =
|
||||
{
|
||||
/* Description */
|
||||
{ "Xmp.dc.title", "single", 16, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 0
|
||||
{ "Xmp.dc.creator", "multi", 13, TAG_TYPE_XMP, GIMP_XMP_SEQ }, // 1
|
||||
{ "Xmp.dc.description", "multi", 14, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 2
|
||||
{ "Xmp.dc.subject", "multi", 15, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 3
|
||||
{ "Xmp.dc.rights", "single", 17, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 4
|
||||
{ "Xmp.photoshop.AuthorsPosition", "single", 19, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 5
|
||||
{ "Xmp.photoshop.CaptionWriter", "single", 21, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 6
|
||||
{ "Xmp.xmp.Rating", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 7
|
||||
{ "Xmp.xmpRights.Marked", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 8
|
||||
{ "Xmp.xmpRights.WebStatement", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 9
|
||||
{ "Xmp.dc.title", MODE_SINGLE, 16, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 0
|
||||
{ "Xmp.dc.creator", MODE_MULTI, 13, TAG_TYPE_XMP, GIMP_XMP_SEQ }, // 1
|
||||
{ "Xmp.dc.description", MODE_MULTI, 14, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 2
|
||||
{ "Xmp.dc.subject", MODE_MULTI, 15, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 3
|
||||
{ "Xmp.dc.rights", MODE_SINGLE, 17, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 4
|
||||
{ "Xmp.photoshop.AuthorsPosition", MODE_SINGLE, 19, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 5
|
||||
{ "Xmp.photoshop.CaptionWriter", MODE_SINGLE, 21, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 6
|
||||
{ "Xmp.xmp.Rating", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 7
|
||||
{ "Xmp.xmpRights.Marked", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 8
|
||||
{ "Xmp.xmpRights.WebStatement", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 9
|
||||
|
||||
/* IPTC */
|
||||
{ "Xmp.photoshop.DateCreated", "single", 0, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 10
|
||||
{ "Xmp.photoshop.Headline", "multi", 3, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 11
|
||||
{ "Xmp.photoshop.TransmissionReference", "single", 1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 12
|
||||
{ "Xmp.photoshop.Instructions", "multi", 2, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 13
|
||||
{ "Xmp.iptc.IntellectualGenre", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 14
|
||||
{ "Xmp.iptc.Scene", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 15
|
||||
{ "Xmp.iptc.Location", "single", 18, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 16
|
||||
{ "Xmp.iptc.CountryCode", "single", 20, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 17
|
||||
{ "Xmp.iptc.SubjectCode", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 18
|
||||
{ "Xmp.xmpRights.UsageTerms", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 19
|
||||
{ "Xmp.photoshop.City", "single", 5, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 20
|
||||
{ "Xmp.photoshop.State", "single", 6, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 21
|
||||
{ "Xmp.photoshop.Country", "single", 7, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 22
|
||||
{ "Xmp.photoshop.DateCreated", MODE_SINGLE, 0, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 10
|
||||
{ "Xmp.photoshop.Headline", MODE_MULTI, 3, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 11
|
||||
{ "Xmp.photoshop.TransmissionReference", MODE_SINGLE, 1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 12
|
||||
{ "Xmp.photoshop.Instructions", MODE_MULTI, 2, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 13
|
||||
{ "Xmp.iptc.IntellectualGenre", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 14
|
||||
{ "Xmp.iptc.Scene", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 15
|
||||
{ "Xmp.iptc.Location", MODE_SINGLE, 18, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 16
|
||||
{ "Xmp.iptc.CountryCode", MODE_SINGLE, 20, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 17
|
||||
{ "Xmp.iptc.SubjectCode", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 18
|
||||
{ "Xmp.xmpRights.UsageTerms", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 19
|
||||
{ "Xmp.photoshop.City", MODE_SINGLE, 5, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 20
|
||||
{ "Xmp.photoshop.State", MODE_SINGLE, 6, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 21
|
||||
{ "Xmp.photoshop.Country", MODE_SINGLE, 7, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 22
|
||||
/* Xmp.photoshop.CaptionWriter here is a duplicate of #6 above. We keep it here to not have
|
||||
* to renumber the tag references. It seems it is not used on the IPTC tab. */
|
||||
{ "Xmp.photoshop.CaptionWriter", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 23
|
||||
{ "Xmp.photoshop.Credit", "single", 8, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 24
|
||||
{ "Xmp.photoshop.Source", "single", 9, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 25
|
||||
{ "Xmp.photoshop.Urgency", "combo", 11, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 26
|
||||
{ "Xmp.photoshop.CaptionWriter", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 23
|
||||
{ "Xmp.photoshop.Credit", MODE_SINGLE, 8, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 24
|
||||
{ "Xmp.photoshop.Source", MODE_SINGLE, 9, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 25
|
||||
{ "Xmp.photoshop.Urgency", MODE_COMBO, 11, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 26
|
||||
|
||||
/* IPTC Extension */
|
||||
{ "Xmp.iptcExt.PersonInImage", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 27
|
||||
{ "Xmp.iptcExt.Sublocation", "single", 12, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 28
|
||||
{ "Xmp.iptcExt.City", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 29
|
||||
{ "Xmp.iptcExt.ProvinceState", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 30
|
||||
{ "Xmp.iptcExt.CountryName", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 31
|
||||
{ "Xmp.iptcExt.CountryCode", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 32
|
||||
{ "Xmp.iptcExt.WorldRegion", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 33
|
||||
{ "Xmp.iptcExt.LocationShown", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 34
|
||||
{ "Xmp.iptcExt.OrganisationInImageName", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 35
|
||||
{ "Xmp.iptcExt.OrganisationInImageCode", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 36
|
||||
{ "Xmp.iptcExt.Event", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 37
|
||||
{ "Xmp.iptcExt.RegistryId", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 38
|
||||
{ "Xmp.iptcExt.ArtworkOrObject", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 39
|
||||
{ "Xmp.iptcExt.AddlModelInfo", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 40
|
||||
{ "Xmp.iptcExt.ModelAge", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 41
|
||||
{ "Xmp.iptcExt.MaxAvailWidth", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 42
|
||||
{ "Xmp.iptcExt.MaxAvailHeight", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 43
|
||||
{ "Xmp.iptcExt.DigitalSourceType", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 44
|
||||
{ "Xmp.plus.MinorModelAgeDisclosure", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 45
|
||||
{ "Xmp.plus.ModelReleaseStatus", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 46
|
||||
{ "Xmp.plus.ModelReleaseID", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 47
|
||||
{ "Xmp.plus.ImageSupplierName", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 48
|
||||
{ "Xmp.plus.ImageSupplierID", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 49
|
||||
{ "Xmp.plus.ImageSupplierImageID", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 50
|
||||
{ "Xmp.plus.ImageCreator", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 51
|
||||
{ "Xmp.plus.CopyrightOwner", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 52
|
||||
{ "Xmp.plus.Licensor", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 53
|
||||
{ "Xmp.plus.PropertyReleaseStatus", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 54
|
||||
{ "Xmp.plus.PropertyReleaseID", "list", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 55
|
||||
{ "Xmp.iptcExt.PersonInImage", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 27
|
||||
{ "Xmp.iptcExt.Sublocation", MODE_SINGLE, 12, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 28
|
||||
{ "Xmp.iptcExt.City", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 29
|
||||
{ "Xmp.iptcExt.ProvinceState", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 30
|
||||
{ "Xmp.iptcExt.CountryName", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 31
|
||||
{ "Xmp.iptcExt.CountryCode", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 32
|
||||
{ "Xmp.iptcExt.WorldRegion", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 33
|
||||
{ "Xmp.iptcExt.LocationShown", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 34
|
||||
{ "Xmp.iptcExt.OrganisationInImageName", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 35
|
||||
{ "Xmp.iptcExt.OrganisationInImageCode", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 36
|
||||
{ "Xmp.iptcExt.Event", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 37
|
||||
{ "Xmp.iptcExt.RegistryId", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 38
|
||||
{ "Xmp.iptcExt.ArtworkOrObject", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 39
|
||||
{ "Xmp.iptcExt.AddlModelInfo", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 40
|
||||
{ "Xmp.iptcExt.ModelAge", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 41
|
||||
{ "Xmp.iptcExt.MaxAvailWidth", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 42
|
||||
{ "Xmp.iptcExt.MaxAvailHeight", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 43
|
||||
{ "Xmp.iptcExt.DigitalSourceType", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 44
|
||||
{ "Xmp.plus.MinorModelAgeDisclosure", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 45
|
||||
{ "Xmp.plus.ModelReleaseStatus", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 46
|
||||
{ "Xmp.plus.ModelReleaseID", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 47
|
||||
{ "Xmp.plus.ImageSupplierName", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 48
|
||||
{ "Xmp.plus.ImageSupplierID", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 49
|
||||
{ "Xmp.plus.ImageSupplierImageID", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 50
|
||||
{ "Xmp.plus.ImageCreator", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 51
|
||||
{ "Xmp.plus.CopyrightOwner", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 52
|
||||
{ "Xmp.plus.Licensor", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 53
|
||||
{ "Xmp.plus.PropertyReleaseStatus", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 54
|
||||
{ "Xmp.plus.PropertyReleaseID", MODE_LIST, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 55
|
||||
|
||||
/* Categories */
|
||||
{ "Xmp.photoshop.Category", "single", 4, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 56
|
||||
{ "Xmp.photoshop.SupplementalCategories", "multi", 10, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 57
|
||||
{ "Xmp.photoshop.Category", MODE_SINGLE, 4, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 56
|
||||
{ "Xmp.photoshop.SupplementalCategories", MODE_MULTI, 10, TAG_TYPE_XMP, GIMP_XMP_BAG }, // 57
|
||||
|
||||
/* GPS */
|
||||
{ "Exif.GPSInfo.GPSLongitude", "single", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 58
|
||||
{ "Exif.GPSInfo.GPSLongitudeRef", "combo", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 59
|
||||
{ "Exif.GPSInfo.GPSLatitude", "single", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 60
|
||||
{ "Exif.GPSInfo.GPSLatitudeRef", "combo", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 61
|
||||
{ "Exif.GPSInfo.GPSAltitude", "single", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 62
|
||||
{ "Exif.GPSInfo.GPSAltitudeRef", "combo", -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 63
|
||||
{ "Exif.GPSInfo.GPSLongitude", MODE_SINGLE, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 58
|
||||
{ "Exif.GPSInfo.GPSLongitudeRef", MODE_COMBO, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 59
|
||||
{ "Exif.GPSInfo.GPSLatitude", MODE_SINGLE, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 60
|
||||
{ "Exif.GPSInfo.GPSLatitudeRef", MODE_COMBO, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 61
|
||||
{ "Exif.GPSInfo.GPSAltitude", MODE_SINGLE, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 62
|
||||
{ "Exif.GPSInfo.GPSAltitudeRef", MODE_COMBO, -1, TAG_TYPE_EXIF, GIMP_XMP_NONE }, // 63
|
||||
|
||||
/* DICOM */
|
||||
{ "Xmp.DICOM.PatientName", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 64
|
||||
{ "Xmp.DICOM.PatientID", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 65
|
||||
{ "Xmp.DICOM.PatientDOB", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 66
|
||||
{ "Xmp.DICOM.PatientSex", "combo", -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 67
|
||||
{ "Xmp.DICOM.StudyID", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 68
|
||||
{ "Xmp.DICOM.StudyPhysician", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 69
|
||||
{ "Xmp.DICOM.StudyDateTime", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 70
|
||||
{ "Xmp.DICOM.StudyDescription", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 71
|
||||
{ "Xmp.DICOM.SeriesNumber", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 72
|
||||
{ "Xmp.DICOM.SeriesModality", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 73
|
||||
{ "Xmp.DICOM.SeriesDateTime", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 74
|
||||
{ "Xmp.DICOM.SeriesDescription", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 75
|
||||
{ "Xmp.DICOM.EquipmentInstitution", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 76
|
||||
{ "Xmp.DICOM.EquipmentManufacturer", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 77
|
||||
{ "Xmp.DICOM.PatientName", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 64
|
||||
{ "Xmp.DICOM.PatientID", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 65
|
||||
{ "Xmp.DICOM.PatientDOB", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 66
|
||||
{ "Xmp.DICOM.PatientSex", MODE_COMBO, -1, TAG_TYPE_XMP, GIMP_XMP_NONE }, // 67
|
||||
{ "Xmp.DICOM.StudyID", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 68
|
||||
{ "Xmp.DICOM.StudyPhysician", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 69
|
||||
{ "Xmp.DICOM.StudyDateTime", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 70
|
||||
{ "Xmp.DICOM.StudyDescription", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 71
|
||||
{ "Xmp.DICOM.SeriesNumber", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 72
|
||||
{ "Xmp.DICOM.SeriesModality", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 73
|
||||
{ "Xmp.DICOM.SeriesDateTime", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 74
|
||||
{ "Xmp.DICOM.SeriesDescription", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 75
|
||||
{ "Xmp.DICOM.EquipmentInstitution", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 76
|
||||
{ "Xmp.DICOM.EquipmentManufacturer", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 77
|
||||
|
||||
/* IPTC */
|
||||
{ "Xmp.iptc.CiAdrExtadr", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 78
|
||||
{ "Xmp.iptc.CiAdrCity", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 79
|
||||
{ "Xmp.iptc.CiAdrRegion", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 80
|
||||
{ "Xmp.iptc.CiAdrPcode", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 81
|
||||
{ "Xmp.iptc.CiAdrCtry", "single", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 82
|
||||
{ "Xmp.iptc.CiTelWork", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 83
|
||||
{ "Xmp.iptc.CiEmailWork", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 84
|
||||
{ "Xmp.iptc.CiUrlWork", "multi", -1, TAG_TYPE_XMP, GIMP_XMP_TEXT } // 85
|
||||
{ "Xmp.iptc.CiAdrExtadr", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 78
|
||||
{ "Xmp.iptc.CiAdrCity", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 79
|
||||
{ "Xmp.iptc.CiAdrRegion", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 80
|
||||
{ "Xmp.iptc.CiAdrPcode", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 81
|
||||
{ "Xmp.iptc.CiAdrCtry", MODE_SINGLE, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 82
|
||||
{ "Xmp.iptc.CiTelWork", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 83
|
||||
{ "Xmp.iptc.CiEmailWork", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT }, // 84
|
||||
{ "Xmp.iptc.CiUrlWork", MODE_MULTI, -1, TAG_TYPE_XMP, GIMP_XMP_TEXT } // 85
|
||||
|
||||
};
|
||||
const gint n_default_metadata_tags = G_N_ELEMENTS (default_metadata_tags);
|
||||
|
||||
/* Then meaning of "single" and "multi" below is a little different than above.
|
||||
* "single" - for iptc tags that can appear only once,
|
||||
* "multi" - for iptc tags that are repeatable, i.e. can appear multiple times.
|
||||
/* Then meaning of MODE_SINGLE and MODE_MULTI below is a little different than above.
|
||||
* MODE_SINGLE - for iptc tags that can appear only once,
|
||||
* MODE_MULTI - for iptc tags that are repeatable, i.e. can appear multiple times.
|
||||
*/
|
||||
const metadata_tag equivalent_metadata_tags[] =
|
||||
{
|
||||
{ "Iptc.Application2.DateCreated", "single", 10, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 0
|
||||
{ "Iptc.Application2.TransmissionReference", "single", 12, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 1
|
||||
{ "Iptc.Application2.SpecialInstructions", "single", 13, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 2
|
||||
{ "Iptc.Application2.Headline", "single", 11, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 3
|
||||
{ "Iptc.Application2.Category", "single", 56, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 4
|
||||
{ "Iptc.Application2.City", "single", 20, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 5
|
||||
{ "Iptc.Application2.ProvinceState", "single", 21, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 6
|
||||
{ "Iptc.Application2.CountryName", "single", 22, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 7
|
||||
{ "Iptc.Application2.Credit", "single", 24, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 8
|
||||
{ "Iptc.Application2.Source", "single", 25, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 9
|
||||
{ "Iptc.Application2.SuppCategory", "multi", 57, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 10
|
||||
{ "Iptc.Application2.Urgency", "combo", 26, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 11
|
||||
{ "Iptc.Application2.SubLocation", "single", 28, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 12
|
||||
{ "Iptc.Application2.Byline", "single", 1, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 13
|
||||
{ "Iptc.Application2.Caption", "single", 2, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 14
|
||||
{ "Iptc.Application2.Keywords", "multi", 3, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 15
|
||||
{ "Iptc.Application2.ObjectName", "single", 0, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 16
|
||||
{ "Iptc.Application2.Copyright", "single", 4, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 17
|
||||
{ "Iptc.Application2.LocationName", "multi", 16, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 18
|
||||
{ "Iptc.Application2.BylineTitle", "multi", 5, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 19
|
||||
{ "Iptc.Application2.CountryCode", "single", 17, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 20
|
||||
{ "Iptc.Application2.Writer", "multi", 6, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 21
|
||||
{ "Iptc.Application2.DateCreated", MODE_SINGLE, 10, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 0
|
||||
{ "Iptc.Application2.TransmissionReference", MODE_SINGLE, 12, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 1
|
||||
{ "Iptc.Application2.SpecialInstructions", MODE_SINGLE, 13, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 2
|
||||
{ "Iptc.Application2.Headline", MODE_SINGLE, 11, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 3
|
||||
{ "Iptc.Application2.Category", MODE_SINGLE, 56, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 4
|
||||
{ "Iptc.Application2.City", MODE_SINGLE, 20, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 5
|
||||
{ "Iptc.Application2.ProvinceState", MODE_SINGLE, 21, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 6
|
||||
{ "Iptc.Application2.CountryName", MODE_SINGLE, 22, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 7
|
||||
{ "Iptc.Application2.Credit", MODE_SINGLE, 24, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 8
|
||||
{ "Iptc.Application2.Source", MODE_SINGLE, 25, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 9
|
||||
{ "Iptc.Application2.SuppCategory", MODE_MULTI, 57, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 10
|
||||
{ "Iptc.Application2.Urgency", MODE_COMBO, 26, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 11
|
||||
{ "Iptc.Application2.SubLocation", MODE_SINGLE, 28, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 12
|
||||
{ "Iptc.Application2.Byline", MODE_SINGLE, 1, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 13
|
||||
{ "Iptc.Application2.Caption", MODE_SINGLE, 2, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 14
|
||||
{ "Iptc.Application2.Keywords", MODE_MULTI, 3, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 15
|
||||
{ "Iptc.Application2.ObjectName", MODE_SINGLE, 0, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 16
|
||||
{ "Iptc.Application2.Copyright", MODE_SINGLE, 4, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 17
|
||||
{ "Iptc.Application2.LocationName", MODE_MULTI, 16, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 18
|
||||
{ "Iptc.Application2.BylineTitle", MODE_MULTI, 5, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 19
|
||||
{ "Iptc.Application2.CountryCode", MODE_SINGLE, 17, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 20
|
||||
{ "Iptc.Application2.Writer", MODE_MULTI, 6, TAG_TYPE_IPTC, GIMP_XMP_NONE }, // 21
|
||||
};
|
||||
const gint n_equivalent_metadata_tags = G_N_ELEMENTS (equivalent_metadata_tags);
|
||||
|
||||
|
@ -319,14 +319,14 @@ const TranslateHeaderTag creatorContactInfoHeader =
|
|||
|
||||
const TranslateTag creatorContactInfoTags[] =
|
||||
{
|
||||
{ "Xmp.iptc.CiAdrExtadr", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrExtadr", "multi", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrCity", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrCity", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrRegion", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrRegion", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrPcode", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrPcode", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrCtry", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrCtry", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiTelWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiTelWork", "multi", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiEmailWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiEmailWork", "multi", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiUrlWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiUrlWork", "multi", -1, TAG_TYPE_XMP }
|
||||
{ "Xmp.iptc.CiAdrExtadr", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrExtadr", MODE_MULTI, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrCity", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrCity", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrRegion", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrRegion", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrPcode", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrPcode", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiAdrCtry", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdrCtry", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiTelWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiTelWork", MODE_MULTI, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiEmailWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiEmailWork", MODE_MULTI, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptc.CiUrlWork", "Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiUrlWork", MODE_MULTI, -1, TAG_TYPE_XMP }
|
||||
};
|
||||
|
||||
const TranslateHeaderTag locationCreationInfoHeader =
|
||||
|
@ -336,12 +336,12 @@ const TranslateHeaderTag locationCreationInfoHeader =
|
|||
|
||||
const TranslateTag locationCreationInfoTags[] =
|
||||
{
|
||||
{ "Xmp.iptcExt.Sublocation", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:Sublocation", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.City", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:City", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.ProvinceState", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:ProvinceState", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.CountryName", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:CountryName", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.CountryCode", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:CountryCode", "single", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.WorldRegion", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:WorldRegion", "single", -1, TAG_TYPE_XMP }
|
||||
{ "Xmp.iptcExt.Sublocation", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:Sublocation", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.City", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:City", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.ProvinceState", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:ProvinceState", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.CountryName", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:CountryName", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.CountryCode", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:CountryCode", MODE_SINGLE, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.iptcExt.WorldRegion", "Xmp.iptcExt.LocationCreated[1]/Iptc4xmpExt:WorldRegion", MODE_SINGLE, -1, TAG_TYPE_XMP }
|
||||
};
|
||||
|
||||
const TranslateHeaderTag imageSupplierInfoHeader =
|
||||
|
@ -351,8 +351,8 @@ const TranslateHeaderTag imageSupplierInfoHeader =
|
|||
|
||||
const TranslateTag imageSupplierInfoTags[] =
|
||||
{
|
||||
{ "Xmp.plus.ImageSupplierName", "Xmp.plus.ImageSupplier[1]/plus:ImageSupplierName", "multi", -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.plus.ImageSupplierID", "Xmp.plus.ImageSupplier[1]/plus:ImageSupplierID", "single", -1, TAG_TYPE_XMP }
|
||||
{ "Xmp.plus.ImageSupplierName", "Xmp.plus.ImageSupplier[1]/plus:ImageSupplierName", MODE_MULTI, -1, TAG_TYPE_XMP },
|
||||
{ "Xmp.plus.ImageSupplierID", "Xmp.plus.ImageSupplier[1]/plus:ImageSupplierID", MODE_SINGLE, -1, TAG_TYPE_XMP }
|
||||
};
|
||||
|
||||
/* Plus and IPTC extension tags */
|
||||
|
|
|
@ -163,13 +163,13 @@ set_tag_ui (metadata_editor *args,
|
|||
gint index,
|
||||
gchar *name,
|
||||
gchar *value,
|
||||
gchar* mode)
|
||||
MetadataMode mode)
|
||||
{
|
||||
GtkWidget *widget = NULL;
|
||||
|
||||
widget = GTK_WIDGET (metadata_editor_get_widget (args, str_tag_name));
|
||||
|
||||
if (!strcmp ("single", mode))
|
||||
if (mode == MODE_SINGLE)
|
||||
{
|
||||
GtkEntry *entry_widget;
|
||||
gchar *value_utf;
|
||||
|
@ -179,7 +179,7 @@ set_tag_ui (metadata_editor *args,
|
|||
gtk_entry_set_text (entry_widget, value_utf);
|
||||
g_free (value_utf);
|
||||
}
|
||||
else if (!strcmp ("multi", mode))
|
||||
else if (mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextView *text_view;
|
||||
GtkTextBuffer *buffer;
|
||||
|
@ -191,7 +191,7 @@ set_tag_ui (metadata_editor *args,
|
|||
gtk_text_buffer_set_text (buffer, value_utf, -1);
|
||||
g_free (value_utf);
|
||||
}
|
||||
else if (!strcmp ("combo", mode))
|
||||
else if (mode == MODE_COMBO)
|
||||
{
|
||||
gint32 value;
|
||||
gchar *value_utf;
|
||||
|
@ -201,7 +201,7 @@ set_tag_ui (metadata_editor *args,
|
|||
gtk_combo_box_set_active (GTK_COMBO_BOX(widget), value);
|
||||
g_free (value_utf);
|
||||
}
|
||||
else if (!strcmp ("list", mode))
|
||||
else if (mode == MODE_LIST)
|
||||
{
|
||||
GtkTreeModel *treemodel;
|
||||
GtkListStore *liststore;
|
||||
|
@ -551,18 +551,18 @@ set_tag_ui (metadata_editor *args,
|
|||
const gchar *
|
||||
get_tag_ui_text (metadata_editor *args,
|
||||
gchar *name,
|
||||
gchar *mode)
|
||||
MetadataMode mode)
|
||||
{
|
||||
GtkWidget *widget = NULL;
|
||||
|
||||
widget = metadata_editor_get_widget (args, name);
|
||||
|
||||
if (! strcmp ("single", mode))
|
||||
if (mode == MODE_SINGLE)
|
||||
{
|
||||
GtkEntry *entry = GTK_ENTRY (widget);
|
||||
return gtk_entry_get_text (entry);
|
||||
}
|
||||
else if (!strcmp ("multi", mode))
|
||||
else if (mode == MODE_MULTI)
|
||||
{
|
||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
||||
GtkTextBuffer *buffer;
|
||||
|
@ -601,7 +601,7 @@ get_list_elements (GString *xmldata, int element_count, gchar **rowtagdata)
|
|||
}
|
||||
|
||||
gchar *
|
||||
get_tag_ui_list (metadata_editor *args, gchar *name, gchar *mode)
|
||||
get_tag_ui_list (metadata_editor *args, gchar *name, MetadataMode mode)
|
||||
{
|
||||
GtkWidget *widget = NULL;
|
||||
GtkTreeModel *treemodel;
|
||||
|
@ -823,7 +823,7 @@ get_tag_ui_list (metadata_editor *args, gchar *name, gchar *mode)
|
|||
}
|
||||
|
||||
gint
|
||||
get_tag_ui_combo (metadata_editor *args, gchar *name, gchar *mode)
|
||||
get_tag_ui_combo (metadata_editor *args, gchar *name, MetadataMode mode)
|
||||
{
|
||||
return gtk_combo_box_get_active (GTK_COMBO_BOX(metadata_editor_get_widget (args, name)));
|
||||
}
|
||||
|
|
|
@ -46,25 +46,25 @@ xml_parser_data (GMarkupParseContext *context,
|
|||
|
||||
void
|
||||
set_tag_ui (metadata_editor *args,
|
||||
int index,
|
||||
gint index,
|
||||
gchar *name,
|
||||
gchar *value,
|
||||
gchar *mode);
|
||||
MetadataMode mode);
|
||||
|
||||
const gchar *
|
||||
get_tag_ui_text (metadata_editor *args,
|
||||
gchar *name,
|
||||
gchar *mode);
|
||||
MetadataMode mode);
|
||||
|
||||
gchar *
|
||||
get_tag_ui_list (metadata_editor *args,
|
||||
gchar *name,
|
||||
gchar *mode);
|
||||
MetadataMode mode);
|
||||
|
||||
gint
|
||||
get_tag_ui_combo (metadata_editor *args,
|
||||
gchar *name,
|
||||
gchar *mode);
|
||||
MetadataMode mode);
|
||||
|
||||
void
|
||||
xml_parser_end_element (GMarkupParseContext *context,
|
||||
|
|
Loading…
Reference in New Issue