[gthumb] sync the rating value with Xmp.xmp.Rating metadata
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] sync the rating value with Xmp.xmp.Rating metadata
- Date: Sun, 15 Jan 2012 11:57:33 +0000 (UTC)
commit 3d4c3bda923dedb33e964a3e705cf5a1cc206da3
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sun Jan 15 12:55:56 2012 +0100
sync the rating value with Xmp.xmp.Rating metadata
as suggested in comment #4 of bug #480001
extensions/exiv2_tools/exiv2-utils.cpp | 7 +++++++
extensions/exiv2_tools/exiv2-utils.h | 1 +
.../exiv2_tools/gth-metadata-provider-exiv2.c | 12 ++++++++++++
extensions/exiv2_tools/main.c | 1 +
4 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/extensions/exiv2_tools/exiv2-utils.cpp b/extensions/exiv2_tools/exiv2-utils.cpp
index 3a76a53..31af20b 100644
--- a/extensions/exiv2_tools/exiv2-utils.cpp
+++ b/extensions/exiv2_tools/exiv2-utils.cpp
@@ -170,6 +170,12 @@ const char *_KEYWORDS_TAG_NAMES[] = {
NULL
};
+const char *_RATING_TAG_NAMES[] = {
+ "Xmp::xmp::Rating",
+ NULL
+};
+
+
/* Some evil camera fill in the ImageDescription or UserComment fields
with useless fluff. Try to filter these out, so they do not show up
as comments */
@@ -525,6 +531,7 @@ set_attributes_from_tagsets (GFileInfo *info)
set_attribute_from_tagset (info, "general::location", _LOCATION_TAG_NAMES);
set_string_list_attribute_from_tagset (info, "general::tags", _KEYWORDS_TAG_NAMES);
+ set_attribute_from_tagset (info, "general::rating", _RATING_TAG_NAMES);
set_attribute_from_tagset (info, "Embedded::Photo::DateTimeOriginal", _ORIGINAL_DATE_TAG_NAMES);
set_attribute_from_tagset (info, "Embedded::Image::Orientation", _ORIENTATION_TAG_NAMES);
}
diff --git a/extensions/exiv2_tools/exiv2-utils.h b/extensions/exiv2_tools/exiv2-utils.h
index 951bf26..22ead69 100644
--- a/extensions/exiv2_tools/exiv2-utils.h
+++ b/extensions/exiv2_tools/exiv2-utils.h
@@ -34,6 +34,7 @@ extern const char *_DESCRIPTION_TAG_NAMES[];
extern const char *_TITLE_TAG_NAMES[];
extern const char *_LOCATION_TAG_NAMES[];
extern const char *_KEYWORDS_TAG_NAMES[];
+extern const char *_RATING_TAG_NAMES[];
gboolean exiv2_read_metadata_from_file (GFile *file,
GFileInfo *info,
diff --git a/extensions/exiv2_tools/gth-metadata-provider-exiv2.c b/extensions/exiv2_tools/gth-metadata-provider-exiv2.c
index 806f79f..32402f2 100644
--- a/extensions/exiv2_tools/gth-metadata-provider-exiv2.c
+++ b/extensions/exiv2_tools/gth-metadata-provider-exiv2.c
@@ -229,6 +229,18 @@ gth_metadata_provider_exiv2_write (GthMetadataProvider *base,
g_file_info_remove_attribute (file_data->info, _KEYWORDS_TAG_NAMES[i]);
}
+ metadata = g_file_info_get_attribute_object (file_data->info, "general::rating");
+ if (metadata != NULL) {
+ if (GTH_IS_METADATA (metadata))
+ g_object_set (metadata, "value-type", NULL, NULL);
+ for (i = 0; _RATING_TAG_NAMES[i] != NULL; i++)
+ g_file_info_set_attribute_object (file_data->info, _RATING_TAG_NAMES[i], metadata);
+ }
+ else {
+ for (i = 0; _RATING_TAG_NAMES[i] != NULL; i++)
+ g_file_info_remove_attribute (file_data->info, _RATING_TAG_NAMES[i]);
+ }
+
metadata = g_file_info_get_attribute_object (file_data->info, "general::datetime");
if (metadata != NULL) {
GthMetadata *xmp_metadata = NULL;
diff --git a/extensions/exiv2_tools/main.c b/extensions/exiv2_tools/main.c
index 6c8f748..92bd325 100644
--- a/extensions/exiv2_tools/main.c
+++ b/extensions/exiv2_tools/main.c
@@ -152,6 +152,7 @@ GthMetadataInfo exiv2_metadata_info[] = {
{ "Xmp::iptc::Location", NULL, "Xmp::Embedded", 0, "XmpText", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
{ "Xmp::iptc::Keywords", NULL, "Xmp::Embedded", 0, "XmpBag", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
{ "Xmp::exif::DateTimeOriginal", NULL, "Xmp::Embedded", 0, "XmpText", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
+ { "Xmp::xmp::Rating", NULL, "Xmp::Embedded", 0, "XmpText", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
{ "Iptc::Application2::Headline", NULL, "Iptc", 1, "String", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
{ "Iptc::Application2::Caption", NULL, "Iptc", 2, "String", GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW },
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]