From 6999d07f0b2fa03f3f2cd29dd0c64bdadbb67c60 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 4 Jun 2024 02:06:59 +0300 Subject: [PATCH] gwenview: check image MIME types via KMimeType::is() because some image MIME types (e.g. image/svg+xml-compressed) do not have magic (only glob) and there is no way KMimeType::findByContent() can detect such (KMimeType::findByContent() returns application/gzip because it is actually a gzip-compressed file, duh) Signed-off-by: Ivailo Monev --- gwenview/lib/mimetypeutils.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gwenview/lib/mimetypeutils.cpp b/gwenview/lib/mimetypeutils.cpp index f1b9ca4b..b1e5239e 100644 --- a/gwenview/lib/mimetypeutils.cpp +++ b/gwenview/lib/mimetypeutils.cpp @@ -76,8 +76,11 @@ QString urlMimeType(const KUrl& url) Kind mimeTypeKind(const QString& mimeType) { - if (imageMimeTypes().contains(mimeType)) { - return KIND_IMAGE; + foreach (const QString &imageMimeType, imageMimeTypes()) { + KMimeType::Ptr imageMimeTypePtr = KMimeType::mimeType(imageMimeType); + if (imageMimeTypePtr && imageMimeTypePtr->is(mimeType)) { + return KIND_IMAGE; + } } // if it is image but it is not one of the static MIME types attempt to open it anyway if (mimeType.startsWith(QLatin1String("image/"))) {