summaryrefslogtreecommitdiff
path: root/kde-apps/ark/files/ark-23.08.2-fix-checks-using-old-ISO-mimetype.patch
blob: 134eb2f8a6a31c830888b42a759eaaac69bebc9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
https://invent.kde.org/utilities/ark/-/commit/dac14f552fb147bf4c9f759611cdb3b544a500b9

From dac14f552fb147bf4c9f759611cdb3b544a500b9 Mon Sep 17 00:00:00 2001
From: Elvis Angelaccio <elvis.angelaccio@kde.org>
Date: Sat, 14 Oct 2023 18:58:22 +0200
Subject: [PATCH] Fix checks using old ISO mimetype

The inherits() method doesn't work with mimetype aliases, and since shared-mime-info 2.3
application/x-cd-image is an alias of application/vnd.efi.img
--- a/kerfuffle/mimetypes.cpp
+++ b/kerfuffle/mimetypes.cpp
@@ -104,7 +104,8 @@ QMimeType determineMimeType(const QString& filename, MimePreference mp)
         }
 
         // #354344: ISO files are currently wrongly detected-by-content.
-        if (mimeFromExtension.inherits(QStringLiteral("application/x-cd-image"))) {
+        // TODO: drop application/x-cd-image once all distributions ship shared-mime-info >= 2.3
+        if (mimeFromExtension.inherits(QStringLiteral("application/vnd.efi.img")) || mimeFromExtension.inherits(QStringLiteral("application/x-cd-image"))) {
             return mimeFromExtension;
         }
 
--- a/part/part.cpp
+++ b/part/part.cpp
@@ -926,7 +926,9 @@ void Part::slotCompleted()
         qCWarning(ARK) << "No entry listed by the plugin";
         displayMsgWidget(KMessageWidget::Warning, xi18nc("@info", "The archive is empty or Ark could not open its content."));
     } else if (m_model->rowCount() == 1 &&
-               m_model->archive()->mimeType().inherits(QStringLiteral("application/x-cd-image")) &&
+               // TODO: drop application/x-cd-image once all distributions ship shared-mime-info >= 2.3
+               (m_model->archive()->mimeType().inherits(QStringLiteral("application/x-cd-image")) ||
+                m_model->archive()->mimeType().inherits(QStringLiteral("application/vnd.efi.img"))) &&
                m_model->entryForIndex(m_model->index(0, 0))->fullPath() == QLatin1String("README.TXT")) {
         qCWarning(ARK) << "Detected ISO image with UDF filesystem";
         displayMsgWidget(KMessageWidget::Warning, xi18nc("@info", "Ark does not currently support ISO files with UDF filesystem."));
-- 
GitLab