From 0d28c4172c5016ba17d250ee5360f6c1c742932f Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Sun, 17 May 2026 12:22:57 +0200 Subject: [PATCH] Render thumbnails at correct aspect ratio --- src/main.rs | 4 ++++ ui/timeline.slint | 5 +++-- ui/types.slint | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index ca541e7..2721362 100644 --- a/src/main.rs +++ b/src/main.rs @@ -98,6 +98,7 @@ fn main() -> anyhow::Result<()> { .map(|_| ui::ImagePreview { asset_id: SharedString::new(), image: preview_image.clone(), + ratio: 1.0, kind: ui::PreviewKind::None, }) .collect::>(), @@ -290,6 +291,7 @@ fn load_bucket(time_bucket: TimeBucketKey, app_weak: Weak, api: Arc size: 32px; width: size; height: size; + clip: true; Image { - width: 100%; - height: 100%; + width: preview.ratio < 1.0 ? size : size * preview.ratio; + height: preview.ratio > 1.0 ? size : size / preview.ratio; source: preview.image; } diff --git a/ui/types.slint b/ui/types.slint index 9485e43..c97cc2c 100644 --- a/ui/types.slint +++ b/ui/types.slint @@ -6,7 +6,13 @@ export enum PreviewKind { export struct ImagePreview { asset_id: string, + + // Thumbnail/thumbhash/etc image: image, + + // Image aspect ratio. (width/height) + ratio: float, + kind: PreviewKind, }