Rex Dieter 0c51e9d
From c9edc4769d278f174d821cf6d9364fbca356b676 Mon Sep 17 00:00:00 2001
Rex Dieter 0c51e9d
From: David Faure <faure@kde.org>
Rex Dieter 0c51e9d
Date: Sun, 6 Mar 2016 19:35:08 +0100
Rex Dieter 0c51e9d
Subject: [PATCH 9/9] Fix handling of x-scheme-handler/* in mimeapps.list
Rex Dieter 0c51e9d
 parsing.
Rex Dieter 0c51e9d
Rex Dieter 0c51e9d
Since this isn't a known mimetype, such lines were being ignored.
Rex Dieter 0c51e9d
Rex Dieter 0c51e9d
BUG: 358159
Rex Dieter 0c51e9d
FIXED-IN: 5.21
Rex Dieter 0c51e9d
---
Rex Dieter 0c51e9d
 autotests/CMakeLists.txt            | 2 +-
Rex Dieter 0c51e9d
 autotests/kmimeassociationstest.cpp | 3 +++
Rex Dieter 0c51e9d
 src/sycoca/kmimeassociations.cpp    | 7 ++++---
Rex Dieter 0c51e9d
 tests/CMakeLists.txt                | 2 +-
Rex Dieter 0c51e9d
 4 files changed, 9 insertions(+), 5 deletions(-)
Rex Dieter 0c51e9d
Rex Dieter 0c51e9d
diff --git a/src/sycoca/kmimeassociations.cpp b/src/sycoca/kmimeassociations.cpp
Rex Dieter 0c51e9d
index 2ddcc07..25ce3fe 100644
Rex Dieter 0c51e9d
--- a/src/sycoca/kmimeassociations.cpp
Rex Dieter 0c51e9d
+++ b/src/sycoca/kmimeassociations.cpp
Rex Dieter 0c51e9d
@@ -27,6 +27,7 @@
Rex Dieter 0c51e9d
 #include <QFile>
Rex Dieter 0c51e9d
 #include <qstandardpaths.h>
Rex Dieter 0c51e9d
 #include <qmimedatabase.h>
Rex Dieter 0c51e9d
+#include "sycocadebug.h"
Rex Dieter 0c51e9d
 
Rex Dieter 0c51e9d
 KMimeAssociations::KMimeAssociations(KOfferHash &offerHash, KServiceFactory *serviceFactory)
Rex Dieter 0c51e9d
     : m_offerHash(offerHash), m_serviceFactory(serviceFactory)
Rex Dieter 0c51e9d
@@ -106,15 +107,15 @@ void KMimeAssociations::parseAddedAssociations(const KConfigGroup &group, const
Rex Dieter 0c51e9d
     QMimeDatabase db;
Rex Dieter 0c51e9d
     Q_FOREACH (const QString &mimeName, group.keyList()) {
Rex Dieter 0c51e9d
         const QStringList services = group.readXdgListEntry(mimeName);
Rex Dieter 0c51e9d
-        const QString resolvedMimeName = db.mimeTypeForName(mimeName).name();
Rex Dieter 0c51e9d
+        const QString resolvedMimeName = mimeName.startsWith("x-scheme-handler/") ? mimeName : db.mimeTypeForName(mimeName).name();
Rex Dieter 0c51e9d
         if (resolvedMimeName.isEmpty()) {
Rex Dieter 0c51e9d
-            //qDebug() << file << "specifies unknown mimeType" << mimeName << "in" << group.name();
Rex Dieter 0c51e9d
+            qCDebug(SYCOCA) << file << "specifies unknown mimeType" << mimeName << "in" << group.name();
Rex Dieter 0c51e9d
         } else {
Rex Dieter 0c51e9d
             int pref = basePreference;
Rex Dieter 0c51e9d
             Q_FOREACH (const QString &service, services) {
Rex Dieter 0c51e9d
                 KService::Ptr pService = m_serviceFactory->findServiceByStorageId(service);
Rex Dieter 0c51e9d
                 if (!pService) {
Rex Dieter 0c51e9d
-                    //qDebug() << file << "specifies unknown service" << service << "in" << group.name();
Rex Dieter 0c51e9d
+                    qDebug(SYCOCA) << file << "specifies unknown service" << service << "in" << group.name();
Rex Dieter 0c51e9d
                 } else {
Rex Dieter 0c51e9d
                     //qDebug() << "adding mime" << resolvedMimeName << "to service" << pService->entryPath() << "pref=" << pref;
Rex Dieter 0c51e9d
                     m_offerHash.addServiceOffer(resolvedMimeName, KServiceOffer(pService, pref, 0, pService->allowAsDefault()));
Rex Dieter 0c51e9d
-- 
Rex Dieter 0c51e9d
2.5.0
Rex Dieter 0c51e9d