summaryrefslogtreecommitdiff
path: root/src/generators.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/generators.c')
-rw-r--r--src/generators.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/generators.c b/src/generators.c
index 9c65d8e..fe62b39 100644
--- a/src/generators.c
+++ b/src/generators.c
@@ -146,6 +146,22 @@ get_image_paths (TGallerySetup *setup,
}
+static void
+metadata_apply_overrides (ExifData *exif_data,
+ TGallerySetup *setup,
+ TAlbum *items,
+ TIndexItem *item)
+{
+ g_return_if_fail (exif_data != NULL);
+
+ g_free (exif_data->override_copyright);
+ exif_data->override_copyright = g_strdup (setup->add_copyright);
+ exif_data->timezone_shift = item->metadata_tz_shift;
+ if (exif_data->timezone_shift == 0)
+ exif_data->timezone_shift = items->metadata_tz_shift;
+}
+
+
/*
* generate_image: generate needed image sizes
*/
@@ -167,6 +183,7 @@ generate_image (TGallerySetup *setup,
int quality;
GList *l;
TImageSize *image_size;
+ ExifData *exif_data;
res = ! query_update;
@@ -230,8 +247,12 @@ generate_image (TGallerySetup *setup,
}
}
}
- if (! is_thumbnail)
- modify_exif (img_dst, setup->erase_exif_thumbnail, setup->add_copyright);
+ if (! is_thumbnail) {
+ exif_data = exif_data_new_empty ();
+ metadata_apply_overrides (exif_data, setup, items, item);
+ modify_exif (img_dst, exif_data, setup->erase_exif_thumbnail);
+ exif_data_free (exif_data);
+ }
g_free (img_src);
g_free (img_dst);
@@ -754,6 +775,7 @@ write_html_image (TGallerySetup *setup,
if (exif == NULL)
log_error ("write_html_image: error getting exif data from file \"%s\"\n", img_dst);
}
+ metadata_apply_overrides (exif, setup, parent_items, item);
/* Test for basic EXIF keys presence */
if (exif != NULL && exif_has_key (exif, EXIF_APERTURE) &&
exif_has_key (exif, EXIF_FOCAL_LENGTH) &&