From 179f393f88245f1ced88b6fe891a5d1b18c09662 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 24 Feb 2022 11:47:07 +0100 Subject: [PATCH] Mimetypes v3: Re-add internal mime database Qt Creator ships its own copy. With this change, Options > Environment > MIME Types shows the basic freedesktop types again. Change-Id: I420d9d034e31622d5ec7f2492baef5c3f1d93df0 Reviewed-by: Jarek Kobus --- src/libs/utils/mimetypes2/mimeprovider.cpp | 17 ++++++++++++++--- src/libs/utils/mimetypes2/mimeprovider_p.h | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/libs/utils/mimetypes2/mimeprovider.cpp b/src/libs/utils/mimetypes2/mimeprovider.cpp index 1d6864015ed..eee202ddc7a 100644 --- a/src/libs/utils/mimetypes2/mimeprovider.cpp +++ b/src/libs/utils/mimetypes2/mimeprovider.cpp @@ -617,7 +617,8 @@ void MimeBinaryProvider::loadGenericIcon(MimeTypePrivate &data) //// -#if 0 //QT_CONFIG(mimetype_database) +#if 0 +#if QT_CONFIG(mimetype_database) static QString internalMimeFileName() { return QStringLiteral(""); @@ -670,6 +671,16 @@ MimeXMLProvider::MimeXMLProvider(MimeDatabasePrivate *db, InternalDatabaseEnum) Q_UNREACHABLE(); } #endif // QT_CONFIG(mimetype_database) +#endif + +static const char internalMimeFileName[] = ":/utils/mimetypes/freedesktop.org.xml"; + +// for Qt Creator: internal database from resources +MimeXMLProvider::MimeXMLProvider(MimeDatabasePrivate *db, InternalDatabaseEnum) + : MimeProviderBase(db, internalMimeFileName) +{ + load(internalMimeFileName); +} MimeXMLProvider::MimeXMLProvider(MimeDatabasePrivate *db, const QString &directory) : MimeProviderBase(db, directory) @@ -690,8 +701,8 @@ bool MimeXMLProvider::isValid() bool MimeXMLProvider::isInternalDatabase() const { -#if 0 //QT_CONFIG(mimetype_database) - return m_directory == internalMimeFileName(); +#if 1 //QT_CONFIG(mimetype_database) + return m_directory == internalMimeFileName; #else return false; #endif diff --git a/src/libs/utils/mimetypes2/mimeprovider_p.h b/src/libs/utils/mimetypes2/mimeprovider_p.h index bb6158713b9..ca65e9dcfdb 100644 --- a/src/libs/utils/mimetypes2/mimeprovider_p.h +++ b/src/libs/utils/mimetypes2/mimeprovider_p.h @@ -139,7 +139,7 @@ class MimeXMLProvider : public MimeProviderBase { public: enum InternalDatabaseEnum { InternalDatabase }; -#if 0 // QT_CONFIG(mimetype_database) +#if 1 // QT_CONFIG(mimetype_database) enum : bool { InternalDatabaseAvailable = true }; #else enum : bool { InternalDatabaseAvailable = false };