[gthumb/ext] fixed the "original photo date" field



commit 37a3610d3923d3f28b3aad8d4749c4f5181dd938
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Oct 25 20:54:46 2009 +0100

    fixed the "original photo date" field

 extensions/comments/gth-edit-comment-page.c |   15 +++++++--------
 extensions/exiv2/exiv2-utils.cpp            |   11 +++++++++++
 gthumb/gth-main-default-metadata.c          |    1 +
 3 files changed, 19 insertions(+), 8 deletions(-)
---
diff --git a/extensions/comments/gth-edit-comment-page.c b/extensions/comments/gth-edit-comment-page.c
index 1a8d2c9..e37cd1b 100644
--- a/extensions/comments/gth-edit-comment-page.c
+++ b/extensions/comments/gth-edit-comment-page.c
@@ -34,7 +34,7 @@ typedef enum {
 	NO_DATE = 0,
 	FOLLOWING_DATE,
 	CURRENT_DATE,
-	EMBEDDED_DATE,
+	PHOTO_DATE,
 	LAST_MODIFIED_DATE,
 	CREATION_DATE,
 	NO_CHANGE
@@ -225,7 +225,6 @@ get_date_from_option (GthEditCommentPage *self,
 	GTimeVal     timeval;
 	GthDateTime *date_time;
 	char        *exif_date;
-	const char  *date;
 	GthMetadata *metadata;
 
 	_g_time_val_reset (&timeval);
@@ -236,7 +235,7 @@ get_date_from_option (GthEditCommentPage *self,
 	case FOLLOWING_DATE:
 		date_time = gth_datetime_new ();
 		gth_time_selector_get_value (GTH_TIME_SELECTOR (self->priv->date_selector), date_time);
-		exif_date = gth_datetime_to_exif_date (&date_time);
+		exif_date = gth_datetime_to_exif_date (date_time);
 		_g_time_val_from_exif_date (exif_date, &timeval);
 		g_free (exif_date);
 		gth_datetime_free (date_time);
@@ -244,8 +243,8 @@ get_date_from_option (GthEditCommentPage *self,
 	case CURRENT_DATE:
 		g_get_current_time (&timeval);
 		break;
-	case EMBEDDED_DATE:
-		metadata = (GthMetadata *) g_file_info_get_attribute_object (self->priv->file_data->info, "Embedded::Image::DateTime");
+	case PHOTO_DATE:
+		metadata = (GthMetadata *) g_file_info_get_attribute_object (self->priv->file_data->info, "Embedded::Photo::DateTimeOriginal");
 		if (metadata != NULL)
 			_g_time_val_from_exif_date (gth_metadata_get_raw (metadata), &timeval);
 		else
@@ -260,9 +259,9 @@ get_date_from_option (GthEditCommentPage *self,
 		timeval.tv_usec = g_file_info_get_attribute_uint32 (self->priv->file_data->info, "time::created-usec");
 		break;
 	case NO_CHANGE:
-		date = g_file_info_get_attribute_string (self->priv->file_data->info, "comment::time");
-		if (date != NULL)
-			_g_time_val_from_exif_date (date, &timeval);
+		metadata = (GthMetadata *) g_file_info_get_attribute_object (self->priv->file_data->info, "Embedded::Image::DateTime");
+		if (metadata != NULL)
+			_g_time_val_from_exif_date (gth_metadata_get_raw (metadata), &timeval);
 		else
 			return g_strdup ("");
 		break;
diff --git a/extensions/exiv2/exiv2-utils.cpp b/extensions/exiv2/exiv2-utils.cpp
index 739f15c..1d9d7ef 100644
--- a/extensions/exiv2/exiv2-utils.cpp
+++ b/extensions/exiv2/exiv2-utils.cpp
@@ -55,6 +55,16 @@ const char *_DATE_TAG_NAMES[] = {
 	NULL
 };
 
+const char *_ORIGINAL_DATE_TAG_NAMES[] = {
+	"Exif::Photo::DateTimeOriginal",
+	"Xmp::exif::DateTimeOriginal",
+	"Exif::Photo::DateTimeDigitized",
+	"Xmp::exif::DateTimeDigitized",
+	"Xmp::xmp::CreateDate",
+	"Xmp::photoshop::DateCreated",
+	NULL
+};
+
 const char *_EXPOSURE_TIME_TAG_NAMES[] = {
 	"Exif::Photo::ExposureTime",
 	"Xmp::exif::ExposureTime",
@@ -275,6 +285,7 @@ static void
 set_attributes_from_tagsets (GFileInfo *info)
 {
 	set_attribute_from_tagset (info, "Embedded::Image::DateTime", _DATE_TAG_NAMES);
+	set_attribute_from_tagset (info, "Embedded::Photo::DateTimeOriginal", _ORIGINAL_DATE_TAG_NAMES);
 	set_attribute_from_tagset (info, "Embedded::Image::Comment", _COMMENT_TAG_NAMES);
 	set_attribute_from_tagset (info, "Embedded::Image::Location", _LOCATION_TAG_NAMES);
 	set_string_list_attribute_from_tagset (info, "Embedded::Image::Keywords", _KEYWORDS_TAG_NAMES);
diff --git a/gthumb/gth-main-default-metadata.c b/gthumb/gth-main-default-metadata.c
index 106fbd2..811fe78 100644
--- a/gthumb/gth-main-default-metadata.c
+++ b/gthumb/gth-main-default-metadata.c
@@ -47,6 +47,7 @@ GthMetadataInfo file_metadata_info[] = {
 	{ "Embedded::Image::Location", "", "", 0, GTH_METADATA_ALLOW_NOWHERE },
 	{ "Embedded::Image::Keywords", "", "", 0, GTH_METADATA_ALLOW_NOWHERE },
 	{ "Embedded::Image::Orientation", "", "", 0, GTH_METADATA_ALLOW_NOWHERE },
+	{ "Embedded::Photo::DateTimeOriginal", "", "", 0, GTH_METADATA_ALLOW_NOWHERE },
 
 	{ NULL, NULL, NULL, 0, 0 }
 };



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]