From 689401dffc0649faf0cc97756632ca5ffed0eb1d Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Fri, 15 Nov 2024 00:20:53 +0100 Subject: [PATCH] metadata: Support XMP metadata from glycin --- build-aux/flatpak/org.gnome.Loupe.Devel.json | 2 +- news.d/48.alpha/added-xmp-support | 1 + src/metadata.rs | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 news.d/48.alpha/added-xmp-support diff --git a/build-aux/flatpak/org.gnome.Loupe.Devel.json b/build-aux/flatpak/org.gnome.Loupe.Devel.json index 2d3ece3..87545a8 100644 --- a/build-aux/flatpak/org.gnome.Loupe.Devel.json +++ b/build-aux/flatpak/org.gnome.Loupe.Devel.json @@ -113,7 +113,7 @@ { "type": "git", "url": "https://gitlab.gnome.org/sophie-h/glycin.git", - "commit": "a887f4246b1dc0a40fd10dbfe96e734b3799d9a3" + "commit": "35401d5faf9aa0980dc04e51629b3f4eda541dbf" } ] }, diff --git a/news.d/48.alpha/added-xmp-support b/news.d/48.alpha/added-xmp-support new file mode 100644 index 0000000..e397c51 --- /dev/null +++ b/news.d/48.alpha/added-xmp-support @@ -0,0 +1 @@ +Display XMP metadata for JPEG images. diff --git a/src/metadata.rs b/src/metadata.rs index f11cbb6..af7580c 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -55,10 +55,21 @@ impl Metadata { } } + fn set_xmp_bytes(&mut self, bytes: Vec) { + let result = self.metadata.add_raw_xmp(bytes); + + if let Err(err) = &result { + log::warn!("Failed to decode XMP bytes: {err}"); + } + } + pub fn set_image_info(&mut self, image_info: ImageInfoDetails) { if let Some(exif_raw) = image_info.exif.as_ref().and_then(|x| x.get_full().ok()) { self.set_exif_bytes(exif_raw); } + if let Some(exif_xmp) = image_info.xmp.as_ref().and_then(|x| x.get_full().ok()) { + self.set_xmp_bytes(exif_xmp); + } self.image_info = Some(image_info); }