From 33ca72efd9a991233a7c9f8430a766444049de4f Mon Sep 17 00:00:00 2001 From: James Graham Date: Sun, 10 Sep 2023 16:22:14 +0000 Subject: [PATCH] Fix ImageDelegate Restore the animated mediaInfo to eventHandler and make sure ImageDelegate uses the media helper size for the sourceSize. --- src/eventhandler.cpp | 5 +++++ src/models/messageeventmodel.cpp | 1 - src/qml/Component/Timeline/ImageDelegate.qml | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/eventhandler.cpp b/src/eventhandler.cpp index af7af654d..599e96eb7 100644 --- a/src/eventhandler.cpp +++ b/src/eventhandler.cpp @@ -3,6 +3,8 @@ #include "eventhandler.h" +#include + #include #include @@ -667,6 +669,9 @@ QVariantMap EventHandler::getMediaInfoFromFileInfo(const EventContent::FileInfo mediaInfo["width"_ls] = castInfo->imageSize.width(); mediaInfo["height"_ls] = castInfo->imageSize.height(); + // TODO: Images in certain formats (e.g. WebP) will be erroneously marked as animated, even if they are static. + mediaInfo["animated"_ls] = QMovie::supportedFormats().contains(mimeType.preferredSuffix().toUtf8()); + if (!isThumbnail) { QVariantMap tempInfo; auto thumbnailInfo = getMediaInfoFromFileInfo(castInfo->thumbnailInfo(), eventId, true); diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp index 116f29403..6f9adff69 100644 --- a/src/models/messageeventmodel.cpp +++ b/src/models/messageeventmodel.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include diff --git a/src/qml/Component/Timeline/ImageDelegate.qml b/src/qml/Component/Timeline/ImageDelegate.qml index 2a051ca18..d2f4ec187 100644 --- a/src/qml/Component/Timeline/ImageDelegate.qml +++ b/src/qml/Component/Timeline/ImageDelegate.qml @@ -73,8 +73,8 @@ TimelineContainer { active: !root.mediaInfo.animated sourceComponent: Image { source: root.mediaInfo.source - sourceSize.width: imageContainer.maxSize.width * Screen.devicePixelRatio - sourceSize.height: imageContainer.maxSize.height * Screen.devicePixelRatio + sourceSize.width: mediaSizeHelper.currentSize.width * Screen.devicePixelRatio + sourceSize.height: mediaSizeHelper.currentSize.height * Screen.devicePixelRatio fillMode: Image.PreserveAspectFit }