summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2022-02-23 17:11:20 +0100
committerEike Ziller <eike.ziller@qt.io>2022-02-25 07:19:58 +0000
commitf562ebf2396eb21f323d22778436fc9c75ce75e2 (patch)
treef6d09a04b56b26ab30563b68ff8553612abe0fcd
parent343a567e0776f7a96fd60410207d80effd61d479 (diff)
downloadqt-creator-f562ebf2396eb21f323d22778436fc9c75ce75e2.tar.gz
Mimetypes: Make implementation switchable between new and old
- configure with QTC_USE_NEW_MIMEDATABASE to switch to the new one in utils/mimetypes2/ - added utils/mimeutils.h header for the Qt Creator specific static wrappers, that also includes the "public" headers for MimeType et al from the new or old implementation, depending on configuration - change all utils/mimetypes/ includes to utils/mimeutils.h - move the implementation for the wrappers to utils/mimetypes(2)/mimeutils.cpp - also move the MimeDatabase declaration in the "old" implementation back to utils/mimetypes/mimedatabase.h Change-Id: Ie8de229c035d6cd9a5e4739dc0fa78d9c17228e3 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
-rw-r--r--src/libs/extensionsystem/pluginmanager.cpp2
-rw-r--r--src/libs/languageserverprotocol/basemessage.cpp2
-rw-r--r--src/libs/languageserverprotocol/basemessage.h2
-rw-r--r--src/libs/languageserverprotocol/icontent.h1
-rw-r--r--src/libs/languageserverprotocol/jsonrpcmessages.cpp1
-rw-r--r--src/libs/languageserverprotocol/lsptypes.cpp1
-rw-r--r--src/libs/languageserverprotocol/lsptypes.h1
-rw-r--r--src/libs/languageserverprotocol/lsputils.cpp2
-rw-r--r--src/libs/languageserverprotocol/lsputils.h1
-rw-r--r--src/libs/utils/CMakeLists.txt39
-rw-r--r--src/libs/utils/archive.cpp2
-rw-r--r--src/libs/utils/mimetypes/mimedatabase.cpp87
-rw-r--r--src/libs/utils/mimetypes/mimedatabase.h71
-rw-r--r--src/libs/utils/mimetypes/mimedatabase_p.h47
-rw-r--r--src/libs/utils/mimetypes/mimemagicrule_p.h7
-rw-r--r--src/libs/utils/mimetypes/mimeutils.cpp140
-rw-r--r--src/libs/utils/mimetypes2/mimedatabase.cpp92
-rw-r--r--src/libs/utils/mimetypes2/mimedatabase.h40
-rw-r--r--src/libs/utils/mimetypes2/mimeutils.cpp139
-rw-r--r--src/libs/utils/mimeutils.h89
-rw-r--r--src/libs/utils/utils.qbs5
-rw-r--r--src/plugins/beautifier/abstractsettings.cpp2
-rw-r--r--src/plugins/beautifier/beautifierplugin.cpp2
-rw-r--r--src/plugins/beautifier/generalsettings.cpp2
-rw-r--r--src/plugins/beautifier/generalsettings.h2
-rw-r--r--src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp2
-rw-r--r--src/plugins/clangtools/clangtoolsplugin.cpp3
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/fileapidataextractor.cpp2
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp2
-rw-r--r--src/plugins/coreplugin/basefilewizardfactory.cpp6
-rw-r--r--src/plugins/coreplugin/corejsextensions.cpp2
-rw-r--r--src/plugins/coreplugin/coreplugin.cpp2
-rw-r--r--src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp2
-rw-r--r--src/plugins/coreplugin/documentmanager.cpp2
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp3
-rw-r--r--src/plugins/coreplugin/editormanager/ieditorfactory.cpp2
-rw-r--r--src/plugins/coreplugin/editormanager/ieditorfactory.h6
-rw-r--r--src/plugins/coreplugin/editormanager/ieditorfactory_p.h3
-rw-r--r--src/plugins/coreplugin/editormanager/iexternaleditor.h6
-rw-r--r--src/plugins/coreplugin/fileiconprovider.cpp2
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp6
-rw-r--r--src/plugins/coreplugin/mimetypemagicdialog.cpp22
-rw-r--r--src/plugins/coreplugin/mimetypemagicdialog.h12
-rw-r--r--src/plugins/coreplugin/mimetypesettings.cpp16
-rw-r--r--src/plugins/cpaster/cpasterplugin.cpp2
-rw-r--r--src/plugins/cppeditor/cppcompletionassist.cpp4
-rw-r--r--src/plugins/cppeditor/cppeditordocument.cpp2
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp2
-rw-r--r--src/plugins/cppeditor/cppfilesettingspage.cpp2
-rw-r--r--src/plugins/cppeditor/cppprojectfile.cpp2
-rw-r--r--src/plugins/cppeditor/resourcepreviewhoverhandler.cpp2
-rw-r--r--src/plugins/debugger/disassembleragent.cpp2
-rw-r--r--src/plugins/designer/cpp/formclasswizardpage.cpp2
-rw-r--r--src/plugins/designer/formeditorplugin.cpp6
-rw-r--r--src/plugins/designer/qtcreatorintegration.cpp2
-rw-r--r--src/plugins/genericprojectmanager/genericprojectwizard.cpp2
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/imageviewer/imageviewerfile.cpp2
-rw-r--r--src/plugins/languageclient/client.cpp2
-rw-r--r--src/plugins/languageclient/languageclientformatter.cpp2
-rw-r--r--src/plugins/languageclient/languageclienthoverhandler.cpp2
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp1
-rw-r--r--src/plugins/languageclient/languageclientoutline.cpp3
-rw-r--r--src/plugins/languageclient/languageclientsettings.cpp3
-rw-r--r--src/plugins/languageclient/languageclientsymbolsupport.cpp2
-rw-r--r--src/plugins/languageclient/semantichighlightsupport.cpp2
-rw-r--r--src/plugins/modeleditor/modelindexer.cpp5
-rw-r--r--src/plugins/nim/project/nimbuildconfiguration.cpp1
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp5
-rw-r--r--src/plugins/projectexplorer/customwizard/customwizardparameters.cpp2
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp2
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp4
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizardscannergenerator.cpp4
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp2
-rw-r--r--src/plugins/projectexplorer/projectfilewizardextension.cpp2
-rw-r--r--src/plugins/projectexplorer/projectnodes.cpp3
-rw-r--r--src/plugins/projectexplorer/simpleprojectwizard.cpp2
-rw-r--r--src/plugins/projectexplorer/treescanner.h2
-rw-r--r--src/plugins/python/pythonutils.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp1
-rw-r--r--src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp2
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp4
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp2
-rw-r--r--src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp2
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp1
-rw-r--r--src/plugins/resourceeditor/resourcenode.cpp2
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.cpp2
-rw-r--r--src/plugins/texteditor/highlighter.cpp2
-rw-r--r--src/plugins/texteditor/textdocument.cpp8
-rw-r--r--src/plugins/texteditor/texteditor.cpp2
-rw-r--r--tests/auto/languageserverprotocol/tst_languageserverprotocol.cpp2
92 files changed, 558 insertions, 441 deletions
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index 46dff4d78a..3b32f85774 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -53,7 +53,7 @@
#include <utils/executeondestruction.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/qtcsettings.h>
diff --git a/src/libs/languageserverprotocol/basemessage.cpp b/src/libs/languageserverprotocol/basemessage.cpp
index 8c1d4c1a2f..f4a34a6178 100644
--- a/src/libs/languageserverprotocol/basemessage.cpp
+++ b/src/libs/languageserverprotocol/basemessage.cpp
@@ -27,8 +27,6 @@
#include "jsonrpcmessages.h"
-#include <utils/mimetypes/mimedatabase.h>
-
#include <QBuffer>
#include <QTextCodec>
diff --git a/src/libs/languageserverprotocol/basemessage.h b/src/libs/languageserverprotocol/basemessage.h
index b2835aa7d7..db3014f012 100644
--- a/src/libs/languageserverprotocol/basemessage.h
+++ b/src/libs/languageserverprotocol/basemessage.h
@@ -27,8 +27,6 @@
#include "languageserverprotocol_global.h"
-#include <utils/mimetypes/mimetype.h>
-
#include <QByteArray>
#include <QCoreApplication>
#include <QLoggingCategory>
diff --git a/src/libs/languageserverprotocol/icontent.h b/src/libs/languageserverprotocol/icontent.h
index 35cc84382a..9173bda66e 100644
--- a/src/libs/languageserverprotocol/icontent.h
+++ b/src/libs/languageserverprotocol/icontent.h
@@ -28,7 +28,6 @@
#include "basemessage.h"
#include "lsputils.h"
-#include <utils/mimetypes/mimetype.h>
#include <utils/qtcassert.h>
#include <utils/variant.h>
diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.cpp b/src/libs/languageserverprotocol/jsonrpcmessages.cpp
index 2b71d34a75..abd19f4b68 100644
--- a/src/libs/languageserverprotocol/jsonrpcmessages.cpp
+++ b/src/libs/languageserverprotocol/jsonrpcmessages.cpp
@@ -28,7 +28,6 @@
#include "lsputils.h"
#include "initializemessages.h"
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <QCoreApplication>
diff --git a/src/libs/languageserverprotocol/lsptypes.cpp b/src/libs/languageserverprotocol/lsptypes.cpp
index 92e04f655c..196f4f4375 100644
--- a/src/libs/languageserverprotocol/lsptypes.cpp
+++ b/src/libs/languageserverprotocol/lsptypes.cpp
@@ -26,7 +26,6 @@
#include "lsptypes.h"
#include "lsputils.h"
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/textutils.h>
#include <QFile>
diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h
index 7bd004ca6c..dbec3b96de 100644
--- a/src/libs/languageserverprotocol/lsptypes.h
+++ b/src/libs/languageserverprotocol/lsptypes.h
@@ -31,6 +31,7 @@
#include <utils/fileutils.h>
#include <utils/link.h>
+#include <utils/mimeutils.h>
#include <utils/optional.h>
#include <utils/textutils.h>
#include <utils/variant.h>
diff --git a/src/libs/languageserverprotocol/lsputils.cpp b/src/libs/languageserverprotocol/lsputils.cpp
index fdac50c3d1..2762e60eac 100644
--- a/src/libs/languageserverprotocol/lsputils.cpp
+++ b/src/libs/languageserverprotocol/lsputils.cpp
@@ -25,8 +25,6 @@
#include "lsputils.h"
-#include <utils/mimetypes/mimedatabase.h>
-
#include <QHash>
#include <QLoggingCategory>
#include <QVector>
diff --git a/src/libs/languageserverprotocol/lsputils.h b/src/libs/languageserverprotocol/lsputils.h
index 08d5e1e3ec..47352ff6bb 100644
--- a/src/libs/languageserverprotocol/lsputils.h
+++ b/src/libs/languageserverprotocol/lsputils.h
@@ -28,7 +28,6 @@
#include "languageserverprotocol_global.h"
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimetype.h>
#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <utils/variant.h>
diff --git a/src/libs/utils/CMakeLists.txt b/src/libs/utils/CMakeLists.txt
index 652ec459cf..a13a53888b 100644
--- a/src/libs/utils/CMakeLists.txt
+++ b/src/libs/utils/CMakeLists.txt
@@ -86,13 +86,7 @@ add_qtc_library(Utils
listutils.h
macroexpander.cpp macroexpander.h
mapreduce.h
- mimetypes/mimedatabase.cpp mimetypes/mimedatabase.h mimetypes/mimedatabase_p.h
- mimetypes/mimeglobpattern.cpp mimetypes/mimeglobpattern_p.h
- mimetypes/mimemagicrule.cpp mimetypes/mimemagicrule_p.h
- mimetypes/mimemagicrulematcher.cpp mimetypes/mimemagicrulematcher_p.h
- mimetypes/mimeprovider.cpp mimetypes/mimeprovider_p.h
- mimetypes/mimetype.cpp mimetypes/mimetype.h mimetypes/mimetype_p.h
- mimetypes/mimetypeparser.cpp mimetypes/mimetypeparser_p.h
+ mimeutils.h
multitextcursor.cpp multitextcursor.h
namevaluedictionary.cpp namevaluedictionary.h
namevaluedictionary.cpp namevaluedictionary.h
@@ -192,6 +186,37 @@ add_qtc_library(Utils
wizardpage.cpp wizardpage.h
)
+option(QTC_USE_NEW_MIMEDATABASE "Use updated MIME database implementation" NO)
+
+if(QTC_USE_NEW_MIMEDATABASE)
+ set(mime_prefix "mimetypes2")
+else()
+ set(mime_prefix "mimetypes")
+endif()
+
+extend_qtc_library(Utils
+ SOURCES_PREFIX ${mime_prefix}
+ PUBLIC_INCLUDES ${mime_prefix}
+ SOURCES
+ mimedatabase.cpp
+ mimedatabase.h
+ mimedatabase_p.h
+ mimeglobpattern.cpp
+ mimeglobpattern_p.h
+ mimemagicrule.cpp
+ mimemagicrule_p.h
+ mimemagicrulematcher.cpp
+ mimemagicrulematcher_p.h
+ mimeprovider.cpp
+ mimeprovider_p.h
+ mimetype.cpp
+ mimetype.h
+ mimetype_p.h
+ mimetypeparser.cpp
+ mimetypeparser_p.h
+ mimeutils.cpp
+)
+
extend_qtc_library(Utils CONDITION WIN32
SOURCES
touchbar/touchbar.cpp
diff --git a/src/libs/utils/archive.cpp b/src/libs/utils/archive.cpp
index d05b49eb6f..8117e64a92 100644
--- a/src/libs/utils/archive.cpp
+++ b/src/libs/utils/archive.cpp
@@ -28,7 +28,7 @@
#include "algorithm.h"
#include "checkablemessagebox.h"
#include "environment.h"
-#include "mimetypes/mimedatabase.h"
+#include "mimeutils.h"
#include "qtcassert.h"
#include "qtcprocess.h"
diff --git a/src/libs/utils/mimetypes/mimedatabase.cpp b/src/libs/utils/mimetypes/mimedatabase.cpp
index c24dd91d00..7bf0a4c8fc 100644
--- a/src/libs/utils/mimetypes/mimedatabase.cpp
+++ b/src/libs/utils/mimetypes/mimedatabase.cpp
@@ -328,19 +328,6 @@ MimeDatabase::~MimeDatabase()
d = nullptr;
}
-void Utils::addMimeTypes(const QString &fileName, const QByteArray &data)
-{
- auto d = MimeDatabasePrivate::instance();
- QMutexLocker locker(&d->mutex);
-
- if (d->m_startupPhase >= MimeDatabase::PluginsDelayedInitializing)
- qWarning("Adding items from %s to MimeDatabase after initialization time",
- qPrintable(fileName));
-
- auto xmlProvider = static_cast<MimeXMLProvider *>(d->provider());
- xmlProvider->addData(fileName, data);
-}
-
/*!
\fn MimeType MimeDatabase::mimeTypeForName(const QString &nameOrAlias) const;
Returns a MIME type for \a nameOrAlias or an invalid one if none found.
@@ -633,77 +620,3 @@ QList<MimeType> MimeDatabase::allMimeTypes() const
\value MatchContent The file content is used to look for a match
*/
-
-QMap<int, QList<MimeMagicRule> > Utils::magicRulesForMimeType(const MimeType &mimeType)
-{
- auto d = MimeDatabasePrivate::instance();
- QMutexLocker locker(&d->mutex);
- return d->provider()->magicRulesForMimeType(mimeType);
-}
-
-void Utils::setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns)
-{
- auto d = MimeDatabasePrivate::instance();
- QMutexLocker locker(&d->mutex);
- d->provider()->setGlobPatternsForMimeType(mimeType, patterns);
-}
-
-void Utils::setMagicRulesForMimeType(const MimeType &mimeType, const QMap<int, QList<MimeMagicRule> > &rules)
-{
- auto d = MimeDatabasePrivate::instance();
- QMutexLocker locker(&d->mutex);
- d->provider()->setMagicRulesForMimeType(mimeType, rules);
-}
-
-void Utils::setMimeStartupPhase(MimeStartupPhase phase)
-{
- auto d = MimeDatabasePrivate::instance();
- QMutexLocker locker(&d->mutex);
- if (int(phase) != d->m_startupPhase + 1)
- qWarning("Unexpected jump in MimedDatabase lifetime from %d to %d", d->m_startupPhase, int(phase));
- d->m_startupPhase = int(phase);
-}
-
-MimeType Utils::mimeTypeForName(const QString &nameOrAlias)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForName(nameOrAlias);
-}
-
-MimeType Utils::mimeTypeForFile(const QString &fileName, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForFile(fileName, MimeDatabase::MatchMode(mode));
-}
-
-MimeType Utils::mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForFile(fileInfo, MimeDatabase::MatchMode(mode));
-}
-
-MimeType Utils::mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- if (filePath.needsDevice())
- return mdb.mimeTypeForUrl(filePath.toUrl());
- return mdb.mimeTypeForFile(filePath.toString(), MimeDatabase::MatchMode(mode));
-}
-
-QList<MimeType> Utils::mimeTypesForFileName(const QString &fileName)
-{
- MimeDatabase mdb;
- return mdb.mimeTypesForFileName(fileName);
-}
-
-MimeType Utils::mimeTypeForData(const QByteArray &data)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForData(data);
-}
-
-QList<MimeType> Utils::allMimeTypes()
-{
- MimeDatabase mdb;
- return mdb.allMimeTypes();
-}
diff --git a/src/libs/utils/mimetypes/mimedatabase.h b/src/libs/utils/mimetypes/mimedatabase.h
index 47a9a74036..4808d96a47 100644
--- a/src/libs/utils/mimetypes/mimedatabase.h
+++ b/src/libs/utils/mimetypes/mimedatabase.h
@@ -40,49 +40,54 @@
#pragma once
#include "mimetype.h"
-#include "mimemagicrule_p.h"
-
-#include <utils/utils_global.h>
QT_BEGIN_NAMESPACE
class QFileInfo;
+class QIODevice;
+class QUrl;
QT_END_NAMESPACE
namespace Utils {
-class FilePath;
+class MimeDatabase
+{
+ Q_DISABLE_COPY(MimeDatabase)
-// Wrapped QMimeDataBase functions
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForName(const QString &nameOrAlias);
+public:
+ MimeDatabase();
+ ~MimeDatabase();
-enum class MimeMatchMode {
- MatchDefault = 0x0,
- MatchExtension = 0x1,
- MatchContent = 0x2
-};
+ MimeType mimeTypeForName(const QString &nameOrAlias) const;
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT QList<MimeType> mimeTypesForFileName(const QString &fileName);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForData(const QByteArray &data);
-QTCREATOR_UTILS_EXPORT QList<MimeType> allMimeTypes();
-
-// Qt Creator additions
-// For debugging purposes.
-enum class MimeStartupPhase {
- BeforeInitialize,
- PluginsLoading,
- PluginsInitializing, // Register up to here.
- PluginsDelayedInitializing, // Use from here on.
- UpAndRunning
-};
+ enum MatchMode { MatchDefault = 0x0, MatchExtension = 0x1, MatchContent = 0x2 };
+
+ MimeType mimeTypeForFile(const QString &fileName, MatchMode mode = MatchDefault) const;
+ MimeType mimeTypeForFile(const QFileInfo &fileInfo, MatchMode mode = MatchDefault) const;
+ QList<MimeType> mimeTypesForFileName(const QString &fileName) const;
+
+ MimeType mimeTypeForData(const QByteArray &data) const;
+ MimeType mimeTypeForData(QIODevice *device) const;
-QTCREATOR_UTILS_EXPORT void setMimeStartupPhase(MimeStartupPhase);
-QTCREATOR_UTILS_EXPORT void addMimeTypes(const QString &id, const QByteArray &data);
-QTCREATOR_UTILS_EXPORT QMap<int, QList<Internal::MimeMagicRule> > magicRulesForMimeType(const MimeType &mimeType); // priority -> rules
-QTCREATOR_UTILS_EXPORT void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns);
-QTCREATOR_UTILS_EXPORT void setMagicRulesForMimeType(const MimeType &mimeType,
- const QMap<int, QList<Internal::MimeMagicRule> > &rules); // priority -> rules
+ MimeType mimeTypeForUrl(const QUrl &url) const;
+ MimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) const;
+ MimeType mimeTypeForFileNameAndData(const QString &fileName, const QByteArray &data) const;
+
+ QString suffixForFileName(const QString &fileName) const;
+
+ QList<MimeType> allMimeTypes() const;
+
+ // For debugging purposes.
+ enum StartupPhase {
+ BeforeInitialize,
+ PluginsLoading,
+ PluginsInitializing, // Register up to here.
+ PluginsDelayedInitializing, // Use from here on.
+ UpAndRunning
+ };
+ static void setStartupPhase(StartupPhase);
+
+private:
+ Internal::MimeDatabasePrivate *d;
+};
} // Utils
diff --git a/src/libs/utils/mimetypes/mimedatabase_p.h b/src/libs/utils/mimetypes/mimedatabase_p.h
index 6f87b213f3..4621112600 100644
--- a/src/libs/utils/mimetypes/mimedatabase_p.h
+++ b/src/libs/utils/mimetypes/mimedatabase_p.h
@@ -62,9 +62,7 @@
#include <QtCore/qhash.h>
#include <QtCore/qmutex.h>
QT_BEGIN_NAMESPACE
-class QFileInfo;
class QIODevice;
-class QUrl;
QT_END_NAMESPACE
#include "mimetype.h"
@@ -108,50 +106,5 @@ public:
int m_startupPhase = 0;
};
-class MimeDatabase
-{
- Q_DISABLE_COPY(MimeDatabase)
-
-public:
- MimeDatabase();
- ~MimeDatabase();
-
- MimeType mimeTypeForName(const QString &nameOrAlias) const;
-
- enum MatchMode {
- MatchDefault = 0x0,
- MatchExtension = 0x1,
- MatchContent = 0x2
- };
-
- MimeType mimeTypeForFile(const QString &fileName, MatchMode mode = MatchDefault) const;
- MimeType mimeTypeForFile(const QFileInfo &fileInfo, MatchMode mode = MatchDefault) const;
- QList<MimeType> mimeTypesForFileName(const QString &fileName) const;
-
- MimeType mimeTypeForData(const QByteArray &data) const;
- MimeType mimeTypeForData(QIODevice *device) const;
-
- MimeType mimeTypeForUrl(const QUrl &url) const;
- MimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) const;
- MimeType mimeTypeForFileNameAndData(const QString &fileName, const QByteArray &data) const;
-
- QString suffixForFileName(const QString &fileName) const;
-
- QList<MimeType> allMimeTypes() const;
-
- // For debugging purposes.
- enum StartupPhase {
- BeforeInitialize,
- PluginsLoading,
- PluginsInitializing, // Register up to here.
- PluginsDelayedInitializing, // Use from here on.
- UpAndRunning
- };
- static void setStartupPhase(StartupPhase);
-
-private:
- Internal::MimeDatabasePrivate *d;
-};
-
} // Internal
} // Utils
diff --git a/src/libs/utils/mimetypes/mimemagicrule_p.h b/src/libs/utils/mimetypes/mimemagicrule_p.h
index 1513750a29..14fdbf9b48 100644
--- a/src/libs/utils/mimetypes/mimemagicrule_p.h
+++ b/src/libs/utils/mimetypes/mimemagicrule_p.h
@@ -62,8 +62,8 @@ namespace Utils {
class MimeType;
namespace Internal {
-
class MimeMagicRulePrivate;
+}
class QTCREATOR_UTILS_EXPORT MimeMagicRule
{
@@ -97,12 +97,11 @@ public:
static bool matchSubstring(const char *dataPtr, int dataSize, int rangeStart, int rangeLength, int valueLength, const char *valueData, const char *mask);
private:
- const QScopedPointer<MimeMagicRulePrivate> d;
+ const QScopedPointer<Internal::MimeMagicRulePrivate> d;
};
-} // Internal
} // Utils
QT_BEGIN_NAMESPACE
-Q_DECLARE_TYPEINFO(Utils::Internal::MimeMagicRule, Q_MOVABLE_TYPE);
+Q_DECLARE_TYPEINFO(Utils::MimeMagicRule, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
diff --git a/src/libs/utils/mimetypes/mimeutils.cpp b/src/libs/utils/mimetypes/mimeutils.cpp
new file mode 100644
index 0000000000..cd618daeea
--- /dev/null
+++ b/src/libs/utils/mimetypes/mimeutils.cpp
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mimeutils.h"
+
+#include "mimedatabase.h"
+#include "mimedatabase_p.h"
+#include "mimemagicrule_p.h"
+#include "mimeprovider_p.h"
+
+#include "filepath.h"
+
+using namespace Utils;
+using namespace Utils::Internal;
+
+void Utils::addMimeTypes(const QString &fileName, const QByteArray &data)
+{
+ auto d = MimeDatabasePrivate::instance();
+ QMutexLocker locker(&d->mutex);
+
+ if (d->m_startupPhase >= MimeDatabase::PluginsDelayedInitializing)
+ qWarning("Adding items from %s to MimeDatabase after initialization time",
+ qPrintable(fileName));
+
+ auto xmlProvider = static_cast<MimeXMLProvider *>(d->provider());
+ xmlProvider->addData(fileName, data);
+}
+
+QMap<int, QList<MimeMagicRule>> Utils::magicRulesForMimeType(const MimeType &mimeType)
+{
+ auto d = MimeDatabasePrivate::instance();
+ QMutexLocker locker(&d->mutex);
+ return d->provider()->magicRulesForMimeType(mimeType);
+}
+
+void Utils::setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns)
+{
+ auto d = MimeDatabasePrivate::instance();
+ QMutexLocker locker(&d->mutex);
+ d->provider()->setGlobPatternsForMimeType(mimeType, patterns);
+}
+
+void Utils::setMagicRulesForMimeType(const MimeType &mimeType,
+ const QMap<int, QList<MimeMagicRule>> &rules)
+{
+ auto d = MimeDatabasePrivate::instance();
+ QMutexLocker locker(&d->mutex);
+ d->provider()->setMagicRulesForMimeType(mimeType, rules);
+}
+
+void Utils::setMimeStartupPhase(MimeStartupPhase phase)
+{
+ auto d = MimeDatabasePrivate::instance();
+ QMutexLocker locker(&d->mutex);
+ if (int(phase) != d->m_startupPhase + 1)
+ qWarning("Unexpected jump in MimedDatabase lifetime from %d to %d",
+ d->m_startupPhase,
+ int(phase));
+ d->m_startupPhase = int(phase);
+}
+
+MimeType Utils::mimeTypeForName(const QString &nameOrAlias)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForName(nameOrAlias);
+}
+
+MimeType Utils::mimeTypeForFile(const QString &fileName, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForFile(fileName, MimeDatabase::MatchMode(mode));
+}
+
+MimeType Utils::mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForFile(fileInfo, MimeDatabase::MatchMode(mode));
+}
+
+MimeType Utils::mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ if (filePath.needsDevice())
+ return mdb.mimeTypeForUrl(filePath.toUrl());
+ return mdb.mimeTypeForFile(filePath.toString(), MimeDatabase::MatchMode(mode));
+}
+
+QList<MimeType> Utils::mimeTypesForFileName(const QString &fileName)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypesForFileName(fileName);
+}
+
+MimeType Utils::mimeTypeForData(const QByteArray &data)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForData(data);
+}
+
+QList<MimeType> Utils::allMimeTypes()
+{
+ MimeDatabase mdb;
+ return mdb.allMimeTypes();
+}
diff --git a/src/libs/utils/mimetypes2/mimedatabase.cpp b/src/libs/utils/mimetypes2/mimedatabase.cpp
index 068f0ec2f8..8d9fd8a65c 100644
--- a/src/libs/utils/mimetypes2/mimedatabase.cpp
+++ b/src/libs/utils/mimetypes2/mimedatabase.cpp
@@ -46,8 +46,6 @@
#include "mimeprovider_p.h"
#include "mimetype_p.h"
-#include "filepath.h"
-
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QStandardPaths>
@@ -829,94 +827,4 @@ QList<MimeType> MimeDatabase::allMimeTypes() const
\value MatchContent The file content is used to look for a match
*/
-MimeType mimeTypeForName(const QString &nameOrAlias)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForName(nameOrAlias);
-}
-
-MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForFile(fileName, MimeDatabase::MatchMode(mode));
-}
-
-MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForFile(fileInfo, MimeDatabase::MatchMode(mode));
-}
-
-MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode)
-{
- MimeDatabase mdb;
- if (filePath.needsDevice())
- return mdb.mimeTypeForUrl(filePath.toUrl());
- return mdb.mimeTypeForFile(filePath.toString(), MimeDatabase::MatchMode(mode));
-}
-
-QList<MimeType> mimeTypesForFileName(const QString &fileName)
-{
- MimeDatabase mdb;
- return mdb.mimeTypesForFileName(fileName);
-}
-
-MimeType mimeTypeForData(const QByteArray &data)
-{
- MimeDatabase mdb;
- return mdb.mimeTypeForData(data);
-}
-
-QList<MimeType> allMimeTypes()
-{
- MimeDatabase mdb;
- return mdb.allMimeTypes();
-}
-
-void setMimeStartupPhase(MimeStartupPhase phase)
-{
-// auto d = MimeDatabasePrivate::instance();
-// QMutexLocker locker(&d->mutex);
-// if (int(phase) != d->m_startupPhase + 1)
-// qWarning("Unexpected jump in MimedDatabase lifetime from %d to %d", d->m_startupPhase, int(phase));
-// d->m_startupPhase = int(phase);
-}
-
-void addMimeTypes(const QString &fileName, const QByteArray &data)
-{
-// auto d = MimeDatabasePrivate::instance();
-// QMutexLocker locker(&d->mutex);
-
-// if (d->m_startupPhase >= MimeDatabase::PluginsDelayedInitializing)
-// qWarning("Adding items from %s to MimeDatabase after initialization time",
-// qPrintable(fileName));
-
-// auto xmlProvider = static_cast<MimeXMLProvider *>(d->provider());
-// xmlProvider->addData(fileName, data);
-}
-
-QMap<int, QList<MimeMagicRule> > magicRulesForMimeType(const MimeType &mimeType)
-{
-// auto d = MimeDatabasePrivate::instance();
-// QMutexLocker locker(&d->mutex);
-// return d->provider()->magicRulesForMimeType(mimeType);
- return {};
-}
-
-void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns)
-{
-// auto d = MimeDatabasePrivate::instance();
-// QMutexLocker locker(&d->mutex);
-// d->provider()->setGlobPatternsForMimeType(mimeType, patterns);
-}
-
-void setMagicRulesForMimeType(const MimeType &mimeType, const QMap<int, QList<MimeMagicRule> > &rules)
-{
-// auto d = MimeDatabasePrivate::instance();
-// QMutexLocker locker(&d->mutex);
-// d->provider()->setMagicRulesForMimeType(mimeType, rules);
-}
-
-
-
} // namespace Utils
diff --git a/src/libs/utils/mimetypes2/mimedatabase.h b/src/libs/utils/mimetypes2/mimedatabase.h
index b8fc86fc3c..7516c467dd 100644
--- a/src/libs/utils/mimetypes2/mimedatabase.h
+++ b/src/libs/utils/mimetypes2/mimedatabase.h
@@ -57,45 +57,9 @@ QT_END_NAMESPACE
namespace Utils {
-class FilePath;
-
-// Wrapped QMimeDataBase functions
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForName(const QString &nameOrAlias);
-
-enum class MimeMatchMode {
- MatchDefault = 0x0,
- MatchExtension = 0x1,
- MatchContent = 0x2
-};
-
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode = MimeMatchMode::MatchDefault);
-QTCREATOR_UTILS_EXPORT QList<MimeType> mimeTypesForFileName(const QString &fileName);
-QTCREATOR_UTILS_EXPORT MimeType mimeTypeForData(const QByteArray &data);
-QTCREATOR_UTILS_EXPORT QList<MimeType> allMimeTypes();
-
-// Qt Creator additions
-// For debugging purposes.
-enum class MimeStartupPhase {
- BeforeInitialize,
- PluginsLoading,
- PluginsInitializing, // Register up to here.
- PluginsDelayedInitializing, // Use from here on.
- UpAndRunning
-};
-
-QTCREATOR_UTILS_EXPORT void setMimeStartupPhase(MimeStartupPhase);
-QTCREATOR_UTILS_EXPORT void addMimeTypes(const QString &id, const QByteArray &data);
-QTCREATOR_UTILS_EXPORT QMap<int, QList<MimeMagicRule> > magicRulesForMimeType(const MimeType &mimeType); // priority -> rules
-QTCREATOR_UTILS_EXPORT void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns);
-QTCREATOR_UTILS_EXPORT void setMagicRulesForMimeType(const MimeType &mimeType,
- const QMap<int, QList<MimeMagicRule> > &rules); // priority -> rules
-
-// Original
-
class MimeDatabasePrivate;
-class QTCREATOR_UTILS_EXPORT MimeDatabase
+
+class MimeDatabase
{
Q_DISABLE_COPY(MimeDatabase)
diff --git a/src/libs/utils/mimetypes2/mimeutils.cpp b/src/libs/utils/mimetypes2/mimeutils.cpp
new file mode 100644
index 0000000000..56a2d93477
--- /dev/null
+++ b/src/libs/utils/mimetypes2/mimeutils.cpp
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mimeutils.h"
+
+#include "mimedatabase.h"
+#include "mimedatabase_p.h"
+#include "mimemagicrule_p.h"
+#include "mimeprovider_p.h"
+
+#include "filepath.h"
+
+namespace Utils {
+
+MimeType mimeTypeForName(const QString &nameOrAlias)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForName(nameOrAlias);
+}
+
+MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForFile(fileName, MimeDatabase::MatchMode(mode));
+}
+
+MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForFile(fileInfo, MimeDatabase::MatchMode(mode));
+}
+
+MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode)
+{
+ MimeDatabase mdb;
+ if (filePath.needsDevice())
+ return mdb.mimeTypeForUrl(filePath.toUrl());
+ return mdb.mimeTypeForFile(filePath.toString(), MimeDatabase::MatchMode(mode));
+}
+
+QList<MimeType> mimeTypesForFileName(const QString &fileName)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypesForFileName(fileName);
+}
+
+MimeType mimeTypeForData(const QByteArray &data)
+{
+ MimeDatabase mdb;
+ return mdb.mimeTypeForData(data);
+}
+
+QList<MimeType> allMimeTypes()
+{
+ MimeDatabase mdb;
+ return mdb.allMimeTypes();
+}
+
+void setMimeStartupPhase(MimeStartupPhase phase)
+{
+ // auto d = MimeDatabasePrivate::instance();
+ // QMutexLocker locker(&d->mutex);
+ // if (int(phase) != d->m_startupPhase + 1)
+ // qWarning("Unexpected jump in MimedDatabase lifetime from %d to %d", d->m_startupPhase, int(phase));
+ // d->m_startupPhase = int(phase);
+}
+
+void addMimeTypes(const QString &fileName, const QByteArray &data)
+{
+ // auto d = MimeDatabasePrivate::instance();
+ // QMutexLocker locker(&d->mutex);
+
+ // if (d->m_startupPhase >= MimeDatabase::PluginsDelayedInitializing)
+ // qWarning("Adding items from %s to MimeDatabase after initialization time",
+ // qPrintable(fileName));
+
+ // auto xmlProvider = static_cast<MimeXMLProvider *>(d->provider());
+ // xmlProvider->addData(fileName, data);
+}
+
+QMap<int, QList<MimeMagicRule>> magicRulesForMimeType(const MimeType &mimeType)
+{
+ // auto d = MimeDatabasePrivate::instance();
+ // QMutexLocker locker(&d->mutex);
+ // return d->provider()->magicRulesForMimeType(mimeType);
+ return {};
+}
+
+void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns)
+{
+ // auto d = MimeDatabasePrivate::instance();
+ // QMutexLocker locker(&d->mutex);
+ // d->provider()->setGlobPatternsForMimeType(mimeType, patterns);
+}
+
+void setMagicRulesForMimeType(const MimeType &mimeType, const QMap<int, QList<MimeMagicRule>> &rules)
+{
+ // auto d = MimeDatabasePrivate::instance();
+ // QMutexLocker locker(&d->mutex);
+ // d->provider()->setMagicRulesForMimeType(mimeType, rules);
+}
+
+} // namespace Utils
diff --git a/src/libs/utils/mimeutils.h b/src/libs/utils/mimeutils.h
new file mode 100644
index 0000000000..ceb05180c4
--- /dev/null
+++ b/src/libs/utils/mimeutils.h
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#pragma once
+
+#include <mimemagicrule_p.h>
+#include <mimetype.h>
+
+#include <utils/utils_global.h>
+
+QT_BEGIN_NAMESPACE
+class QFileInfo;
+QT_END_NAMESPACE
+
+namespace Utils {
+
+class FilePath;
+
+// Wrapped QMimeDataBase functions
+QTCREATOR_UTILS_EXPORT MimeType mimeTypeForName(const QString &nameOrAlias);
+
+enum class MimeMatchMode { MatchDefault = 0x0, MatchExtension = 0x1, MatchContent = 0x2 };
+
+QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QString &fileName,
+ MimeMatchMode mode = MimeMatchMode::MatchDefault);
+QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QFileInfo &fileInfo,
+ MimeMatchMode mode = MimeMatchMode::MatchDefault);
+QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const FilePath &filePath,
+ MimeMatchMode mode = MimeMatchMode::MatchDefault);
+QTCREATOR_UTILS_EXPORT QList<MimeType> mimeTypesForFileName(const QString &fileName);
+QTCREATOR_UTILS_EXPORT MimeType mimeTypeForData(const QByteArray &data);
+QTCREATOR_UTILS_EXPORT QList<MimeType> allMimeTypes();
+
+// Qt Creator additions
+// For debugging purposes.
+enum class MimeStartupPhase {
+ BeforeInitialize,
+ PluginsLoading,
+ PluginsInitializing, // Register up to here.
+ PluginsDelayedInitializing, // Use from here on.
+ UpAndRunning
+};
+
+QTCREATOR_UTILS_EXPORT void setMimeStartupPhase(MimeStartupPhase);
+QTCREATOR_UTILS_EXPORT void addMimeTypes(const QString &id, const QByteArray &data);
+QTCREATOR_UTILS_EXPORT QMap<int, QList<MimeMagicRule>> magicRulesForMimeType(
+ const MimeType &mimeType); // priority -> rules
+QTCREATOR_UTILS_EXPORT void setGlobPatternsForMimeType(const MimeType &mimeType,
+ const QStringList &patterns);
+QTCREATOR_UTILS_EXPORT void setMagicRulesForMimeType(
+ const MimeType &mimeType, const QMap<int, QList<MimeMagicRule>> &rules); // priority -> rules
+
+} // namespace Utils
diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs
index 1d2523e3a0..11493fb4b0 100644
--- a/src/libs/utils/utils.qbs
+++ b/src/libs/utils/utils.qbs
@@ -5,7 +5,7 @@ Project {
name: "Utils"
QtcLibrary {
-
+ cpp.includePaths: base.concat("mimetypes", ".")
cpp.defines: base.concat([
"UTILS_LIBRARY"
])
@@ -179,6 +179,7 @@ Project {
"macroexpander.cpp",
"macroexpander.h",
"mapreduce.h",
+ "mimeutils.h",
"multitextcursor.cpp",
"multitextcursor.h",
"namevaluedictionary.cpp",
@@ -404,6 +405,7 @@ Project {
"mimetype_p.h",
"mimetypeparser.cpp",
"mimetypeparser_p.h",
+ "mimeutils.cpp"
]
}
@@ -430,6 +432,7 @@ Project {
Export {
Depends { name: "Qt"; submodules: ["concurrent", "widgets" ] }
+ cpp.includePaths: base.concat("mimetypes")
}
}
}
diff --git a/src/plugins/beautifier/abstractsettings.cpp b/src/plugins/beautifier/abstractsettings.cpp
index 28d8ac6b04..d691984d62 100644
--- a/src/plugins/beautifier/abstractsettings.cpp
+++ b/src/plugins/beautifier/abstractsettings.cpp
@@ -33,7 +33,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/genericconstants.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QFile>
#include <QFileInfo>
diff --git a/src/plugins/beautifier/beautifierplugin.cpp b/src/plugins/beautifier/beautifierplugin.cpp
index aa2f8e4532..c1abcdd7bc 100644
--- a/src/plugins/beautifier/beautifierplugin.cpp
+++ b/src/plugins/beautifier/beautifierplugin.cpp
@@ -51,7 +51,7 @@
#include <texteditor/texteditorconstants.h>
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/runextensions.h>
diff --git a/src/plugins/beautifier/generalsettings.cpp b/src/plugins/beautifier/generalsettings.cpp
index df16001aa0..b90ab0a133 100644
--- a/src/plugins/beautifier/generalsettings.cpp
+++ b/src/plugins/beautifier/generalsettings.cpp
@@ -30,7 +30,7 @@
#include <coreplugin/icore.h>
#include <utils/algorithm.h>
#include <utils/genericconstants.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
namespace Beautifier {
namespace Internal {
diff --git a/src/plugins/beautifier/generalsettings.h b/src/plugins/beautifier/generalsettings.h
index 254a13c7c2..ae3d49734d 100644
--- a/src/plugins/beautifier/generalsettings.h
+++ b/src/plugins/beautifier/generalsettings.h
@@ -25,7 +25,7 @@
#pragma once
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <QList>
diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp
index ac8f686910..db70275ead 100644
--- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp
+++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp
@@ -50,7 +50,7 @@
#include <clangsupport/filecontainer.h>
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/optional.h>
#include <utils/porting.h>
#include <utils/qtcassert.h>
diff --git a/src/plugins/clangtools/clangtoolsplugin.cpp b/src/plugins/clangtools/clangtoolsplugin.cpp
index 82806284e7..310d64a6ba 100644
--- a/src/plugins/clangtools/clangtoolsplugin.cpp
+++ b/src/plugins/clangtools/clangtoolsplugin.cpp
@@ -38,8 +38,7 @@
#include "clangtoolsunittests.h"
#endif
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <coreplugin/actionmanager/actioncontainer.h>
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
index c4d2127573..f3255f6462 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp
@@ -59,7 +59,7 @@
#include <utils/checkablemessagebox.h>
#include <utils/fileutils.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/runextensions.h>
diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
index d5836605f4..a381fecd69 100644
--- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp
@@ -31,7 +31,7 @@
#include <cppeditor/cppeditorconstants.h>
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/utilsicons.h>
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
index 37216a4887..caeeddded9 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp
@@ -28,7 +28,7 @@
#include <coreplugin/progressmanager/progressmanager.h>
#include <projectexplorer/task.h>
#include <projectexplorer/treescanner.h>
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <utils/runextensions.h>
#include <QCryptographicHash>
diff --git a/src/plugins/coreplugin/basefilewizardfactory.cpp b/src/plugins/coreplugin/basefilewizardfactory.cpp
index 83d9721bce..e272acd92a 100644
--- a/src/plugins/coreplugin/basefilewizardfactory.cpp
+++ b/src/plugins/coreplugin/basefilewizardfactory.cpp
@@ -26,14 +26,14 @@
#include "basefilewizardfactory.h"
#include "basefilewizard.h"
+#include "dialogs/promptoverwritedialog.h"
+#include "editormanager/editormanager.h"
#include "icontext.h"
#include "icore.h"
#include "ifilewizardextension.h"
-#include "editormanager/editormanager.h"
-#include "dialogs/promptoverwritedialog.h"
#include <extensionsystem/pluginmanager.h>
#include <utils/filewizardpage.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
#include <utils/wizard.h>
diff --git a/src/plugins/coreplugin/corejsextensions.cpp b/src/plugins/coreplugin/corejsextensions.cpp
index 6b6a380108..b73534b25b 100644
--- a/src/plugins/coreplugin/corejsextensions.cpp
+++ b/src/plugins/coreplugin/corejsextensions.cpp
@@ -28,7 +28,7 @@
#include <app/app_version.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <QDir>
diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp
index 483c8c3c2b..a6cccc3d09 100644
--- a/src/plugins/coreplugin/coreplugin.cpp
+++ b/src/plugins/coreplugin/coreplugin.cpp
@@ -53,7 +53,7 @@
#include <utils/commandline.h>
#include <utils/infobar.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/pathchooser.h>
#include <utils/savefile.h>
#include <utils/stringutils.h>
diff --git a/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp b/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp
index 8901ee109e..18e13f3531 100644
--- a/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/filepropertiesdialog.cpp
@@ -29,7 +29,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditorfactory.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QDateTime>
#include <QDebug>
diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp
index 4b9190a45a..640b2dffa9 100644
--- a/src/plugins/coreplugin/documentmanager.cpp
+++ b/src/plugins/coreplugin/documentmanager.cpp
@@ -50,7 +50,7 @@
#include <utils/fileutils.h>
#include <utils/globalfilechangeblocker.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/optional.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 150d5d957b..d40c3b049a 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -72,8 +72,7 @@
#include <utils/infobar.h>
#include <utils/link.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <utils/overridecursor.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
diff --git a/src/plugins/coreplugin/editormanager/ieditorfactory.cpp b/src/plugins/coreplugin/editormanager/ieditorfactory.cpp
index a4e323b8d2..af7627a0c2 100644
--- a/src/plugins/coreplugin/editormanager/ieditorfactory.cpp
+++ b/src/plugins/coreplugin/editormanager/ieditorfactory.cpp
@@ -28,7 +28,7 @@
#include "editormanager.h"
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <QFileInfo>
diff --git a/src/plugins/coreplugin/editormanager/ieditorfactory.h b/src/plugins/coreplugin/editormanager/ieditorfactory.h
index 20787c2915..dfefb53c18 100644
--- a/src/plugins/coreplugin/editormanager/ieditorfactory.h
+++ b/src/plugins/coreplugin/editormanager/ieditorfactory.h
@@ -28,14 +28,16 @@
#include <coreplugin/core_global.h>
#include <utils/id.h>
-#include <utils/mimetypes/mimetype.h>
#include <QObject>
#include <QStringList>
#include <functional>
-namespace Utils { class FilePath; }
+namespace Utils {
+class FilePath;
+class MimeType;
+}
namespace Core {
diff --git a/src/plugins/coreplugin/editormanager/ieditorfactory_p.h b/src/plugins/coreplugin/editormanager/ieditorfactory_p.h
index 842772c2e5..9a05d2fdf6 100644
--- a/src/plugins/coreplugin/editormanager/ieditorfactory_p.h
+++ b/src/plugins/coreplugin/editormanager/ieditorfactory_p.h
@@ -25,8 +25,7 @@
#pragma once
-#include <utils/mimetypes/mimetype.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QHash>
#include <QSet>
diff --git a/src/plugins/coreplugin/editormanager/iexternaleditor.h b/src/plugins/coreplugin/editormanager/iexternaleditor.h
index d37fc9fd12..a3ed21c64a 100644
--- a/src/plugins/coreplugin/editormanager/iexternaleditor.h
+++ b/src/plugins/coreplugin/editormanager/iexternaleditor.h
@@ -30,11 +30,13 @@
#include <coreplugin/core_global.h>
#include <utils/id.h>
-#include <utils/mimetypes/mimetype.h>
#include <QObject>
-namespace Utils { class FilePath; }
+namespace Utils {
+class FilePath;
+class MimeType;
+}
namespace Core {
diff --git a/src/plugins/coreplugin/fileiconprovider.cpp b/src/plugins/coreplugin/fileiconprovider.cpp
index e2149ce35a..bf4109953c 100644
--- a/src/plugins/coreplugin/fileiconprovider.cpp
+++ b/src/plugins/coreplugin/fileiconprovider.cpp
@@ -27,7 +27,7 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/optional.h>
#include <utils/qtcassert.h>
#include <utils/variant.h>
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 145244f7d8..f032f2cc42 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -56,13 +56,13 @@
#include <coreplugin/actionmanager/actionmanager_p.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/dialogs/externaltoolconfig.h>
-#include <coreplugin/iwizardfactory.h>
#include <coreplugin/dialogs/shortcutsettings.h>
#include <coreplugin/editormanager/documentmodel_p.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/editormanager_p.h>
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/inavigationwidgetfactory.h>
+#include <coreplugin/iwizardfactory.h>
#include <coreplugin/progressmanager/progressmanager_p.h>
#include <coreplugin/progressmanager/progressview.h>
#include <coreplugin/settingsdatabase.h>
@@ -70,11 +70,11 @@
#include <utils/algorithm.h>
#include <utils/historycompleter.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
+#include <utils/stringutils.h>
#include <utils/stylehelper.h>
#include <utils/theme/theme.h>
-#include <utils/stringutils.h>
#include <utils/utilsicons.h>
#include <QActionGroup>
diff --git a/src/plugins/coreplugin/mimetypemagicdialog.cpp b/src/plugins/coreplugin/mimetypemagicdialog.cpp
index 18bd851673..633977638f 100644
--- a/src/plugins/coreplugin/mimetypemagicdialog.cpp
+++ b/src/plugins/coreplugin/mimetypemagicdialog.cpp
@@ -37,11 +37,11 @@
using namespace Core;
using namespace Internal;
-static Utils::Internal::MimeMagicRule::Type typeValue(int i)
+static Utils::MimeMagicRule::Type typeValue(int i)
{
- QTC_ASSERT(i < Utils::Internal::MimeMagicRule::Byte,
- return Utils::Internal::MimeMagicRule::Invalid);
- return Utils::Internal::MimeMagicRule::Type(i + 1/*0==invalid*/);
+ QTC_ASSERT(i < Utils::MimeMagicRule::Byte,
+ return Utils::MimeMagicRule::Invalid);
+ return Utils::MimeMagicRule::Type(i + 1/*0==invalid*/);
}
MimeTypeMagicDialog::MimeTypeMagicDialog(QWidget *parent) :
@@ -96,7 +96,7 @@ void MimeTypeMagicDialog::applyRecommended(bool checked)
void MimeTypeMagicDialog::validateAccept()
{
QString errorMessage;
- Utils::Internal::MimeMagicRule rule = createRule(&errorMessage);
+ Utils::MimeMagicRule rule = createRule(&errorMessage);
if (rule.isValid())
accept();
else
@@ -130,12 +130,12 @@ bool MagicData::operator==(const MagicData &other) const
Returns the mask, or an empty string if the mask is the default mask which is set by
MimeMagicRule when setting an empty mask for string patterns.
*/
-QByteArray MagicData::normalizedMask(const Utils::Internal::MimeMagicRule &rule)
+QByteArray MagicData::normalizedMask(const Utils::MimeMagicRule &rule)
{
// convert mask and see if it is the "default" one (which corresponds to "empty" mask)
// see MimeMagicRule constructor
QByteArray mask = rule.mask();
- if (rule.type() == Utils::Internal::MimeMagicRule::String) {
+ if (rule.type() == Utils::MimeMagicRule::String) {
QByteArray actualMask = QByteArray::fromHex(QByteArray::fromRawData(mask.constData() + 2,
mask.size() - 2));
if (actualMask.count(char(-1)) == actualMask.size()) {
@@ -146,16 +146,16 @@ QByteArray MagicData::normalizedMask(const Utils::Internal::MimeMagicRule &rule)
return mask;
}
-Utils::Internal::MimeMagicRule MimeTypeMagicDialog::createRule(QString *errorMessage) const
+Utils::MimeMagicRule MimeTypeMagicDialog::createRule(QString *errorMessage) const
{
- Utils::Internal::MimeMagicRule::Type type = typeValue(ui.typeSelector->currentIndex());
- Utils::Internal::MimeMagicRule rule(type,
+ Utils::MimeMagicRule::Type type = typeValue(ui.typeSelector->currentIndex());
+ Utils::MimeMagicRule rule(type,
ui.valueLineEdit->text().toUtf8(),
ui.startRangeSpinBox->value(),
ui.endRangeSpinBox->value(),
ui.maskLineEdit->text().toLatin1(),
errorMessage);
- if (type == Utils::Internal::MimeMagicRule::Invalid) {
+ if (type == Utils::MimeMagicRule::Invalid) {
if (errorMessage)
*errorMessage = tr("Internal error: Type is invalid");
}
diff --git a/src/plugins/coreplugin/mimetypemagicdialog.h b/src/plugins/coreplugin/mimetypemagicdialog.h
index 9480369e2e..06868ff1d8 100644
--- a/src/plugins/coreplugin/mimetypemagicdialog.h
+++ b/src/plugins/coreplugin/mimetypemagicdialog.h
@@ -27,7 +27,7 @@
#include "ui_mimetypemagicdialog.h"
-#include <utils/mimetypes/mimemagicrule_p.h>
+#include <utils/mimeutils.h>
namespace Core {
namespace Internal {
@@ -36,11 +36,11 @@ class MagicData
{
public:
MagicData()
- : m_rule(Utils::Internal::MimeMagicRule::String, QByteArray(" "), 0, 0)
+ : m_rule(Utils::MimeMagicRule::String, QByteArray(" "), 0, 0)
{
}
- MagicData(Utils::Internal::MimeMagicRule rule, int priority)
+ MagicData(Utils::MimeMagicRule rule, int priority)
: m_rule(rule)
, m_priority(priority)
{
@@ -49,9 +49,9 @@ public:
bool operator==(const MagicData &other) const;
bool operator!=(const MagicData &other) { return !(*this == other); }
- static QByteArray normalizedMask(const Utils::Internal::MimeMagicRule &rule);
+ static QByteArray normalizedMask(const Utils::MimeMagicRule &rule);
- Utils::Internal::MimeMagicRule m_rule;
+ Utils::MimeMagicRule m_rule;
int m_priority = 0;
};
@@ -68,7 +68,7 @@ private:
void setToRecommendedValues();
void applyRecommended(bool checked);
void validateAccept();
- Utils::Internal::MimeMagicRule createRule(QString *errorMessage = nullptr) const;
+ Utils::MimeMagicRule createRule(QString *errorMessage = nullptr) const;
Ui::MimeTypeMagicDialog ui;
int m_customRangeStart = 0;
diff --git a/src/plugins/coreplugin/mimetypesettings.cpp b/src/plugins/coreplugin/mimetypesettings.cpp
index d8f3b9ca64..55fb49cb90 100644
--- a/src/plugins/coreplugin/mimetypesettings.cpp
+++ b/src/plugins/coreplugin/mimetypesettings.cpp
@@ -35,7 +35,7 @@
#include <utils/algorithm.h>
#include <utils/headerviewstretcher.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
@@ -87,7 +87,7 @@ public:
bool isValid() const { return !name.isEmpty(); }
QString name;
QStringList globPatterns;
- QMap<int, QList<Utils::Internal::MimeMagicRule> > rules;
+ QMap<int, QList<Utils::MimeMagicRule> > rules;
};
// MimeTypeSettingsModel
@@ -346,12 +346,12 @@ void MimeTypeSettingsPrivate::syncData(const QModelIndex &current,
modifiedType.isValid() ? modifiedType.globPatterns.join(kSemiColon)
: currentMimeType.globPatterns().join(kSemiColon));
- QMap<int, QList<Utils::Internal::MimeMagicRule> > rules =
+ QMap<int, QList<Utils::MimeMagicRule> > rules =
modifiedType.isValid() ? modifiedType.rules
: Utils::magicRulesForMimeType(currentMimeType);
for (auto it = rules.constBegin(); it != rules.constEnd(); ++it) {
int priority = it.key();
- foreach (const Utils::Internal::MimeMagicRule &rule, it.value()) {
+ foreach (const Utils::MimeMagicRule &rule, it.value()) {
addMagicHeaderRow(MagicData(rule, priority));
}
}
@@ -394,7 +394,7 @@ void MimeTypeSettingsPrivate::editMagicHeaderRowData(const int row, const MagicD
{
auto item = new QTreeWidgetItem;
item->setText(0, QString::fromUtf8(data.m_rule.value()));
- item->setText(1, QString::fromLatin1(Utils::Internal::MimeMagicRule::typeName(data.m_rule.type())));
+ item->setText(1, QString::fromLatin1(Utils::MimeMagicRule::typeName(data.m_rule.type())));
item->setText(2, QString::fromLatin1("%1:%2").arg(data.m_rule.startPos()).arg(data.m_rule.endPos()));
item->setText(3, QString::number(data.m_priority));
item->setData(0, Qt::UserRole, QVariant::fromValue(data));
@@ -522,12 +522,12 @@ void MimeTypeSettingsPrivate::writeUserModifiedMimeTypes()
mt.globPatterns.join(kSemiColon));
for (auto prioIt = mt.rules.constBegin(); prioIt != mt.rules.constEnd(); ++prioIt) {
const QString priorityString = QString::number(prioIt.key());
- foreach (const Utils::Internal::MimeMagicRule &rule, prioIt.value()) {
+ foreach (const Utils::MimeMagicRule &rule, prioIt.value()) {
writer.writeStartElement(QLatin1String(matchTagC));
writer.writeAttribute(QLatin1String(matchValueAttributeC),
QString::fromUtf8(rule.value()));
writer.writeAttribute(QLatin1String(matchTypeAttributeC),
- QString::fromUtf8(Utils::Internal::MimeMagicRule::typeName(rule.type())));
+ QString::fromUtf8(Utils::MimeMagicRule::typeName(rule.type())));
writer.writeAttribute(QLatin1String(matchOffsetAttributeC),
QString::fromLatin1("%1:%2").arg(rule.startPos())
.arg(rule.endPos()));
@@ -585,7 +585,7 @@ MimeTypeSettingsPrivate::UserMimeTypeHash MimeTypeSettingsPrivate::readUserModif
int priority = atts.value(QLatin1String(priorityAttributeC)).toString().toInt();
QByteArray mask = atts.value(QLatin1String(matchMaskAttributeC)).toLatin1();
QString errorMessage;
- Utils::Internal::MimeMagicRule rule(Utils::Internal::MimeMagicRule::type(typeName),
+ Utils::MimeMagicRule rule(Utils::MimeMagicRule::type(typeName),
value, range.first, range.second, mask,
&errorMessage);
if (rule.isValid()) {
diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp
index 825cacd4a4..3cf987e1ef 100644
--- a/src/plugins/cpaster/cpasterplugin.cpp
+++ b/src/plugins/cpaster/cpasterplugin.cpp
@@ -43,7 +43,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/temporarydirectory.h>
diff --git a/src/plugins/cppeditor/cppcompletionassist.cpp b/src/plugins/cppeditor/cppcompletionassist.cpp
index ee04a15957..ab7524f0fa 100644
--- a/src/plugins/cppeditor/cppcompletionassist.cpp
+++ b/src/plugins/cppeditor/cppcompletionassist.cpp
@@ -42,9 +42,9 @@
#include <texteditor/texteditorsettings.h>
#include <texteditor/completionsettings.h>
-#include <utils/textutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
+#include <utils/textutils.h>
#include <cplusplus/BackwardsScanner.h>
#include <cplusplus/CppRewriter.h>
diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp
index a79e26802d..29e7d90257 100644
--- a/src/plugins/cppeditor/cppeditordocument.cpp
+++ b/src/plugins/cppeditor/cppeditordocument.cpp
@@ -49,7 +49,7 @@
#include <utils/executeondestruction.h>
#include <utils/infobar.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index 0bc90d1f1f..a6baee1fef 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -107,7 +107,7 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/theme/theme.h>
diff --git a/src/plugins/cppeditor/cppfilesettingspage.cpp b/src/plugins/cppeditor/cppfilesettingspage.cpp
index d6abddffc4..3521211b11 100644
--- a/src/plugins/cppeditor/cppfilesettingspage.cpp
+++ b/src/plugins/cppeditor/cppfilesettingspage.cpp
@@ -37,7 +37,7 @@
#include <utils/environment.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/stringutils.h>
#include <QCoreApplication>
diff --git a/src/plugins/cppeditor/cppprojectfile.cpp b/src/plugins/cppeditor/cppprojectfile.cpp
index 58196521ca..c565df9bb4 100644
--- a/src/plugins/cppeditor/cppprojectfile.cpp
+++ b/src/plugins/cppeditor/cppprojectfile.cpp
@@ -28,7 +28,7 @@
#include "cppeditorconstants.h"
#include <coreplugin/icore.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QDebug>
diff --git a/src/plugins/cppeditor/resourcepreviewhoverhandler.cpp b/src/plugins/cppeditor/resourcepreviewhoverhandler.cpp
index 8ebb0339a8..238464619a 100644
--- a/src/plugins/cppeditor/resourcepreviewhoverhandler.cpp
+++ b/src/plugins/cppeditor/resourcepreviewhoverhandler.cpp
@@ -32,7 +32,7 @@
#include <texteditor/texteditor.h>
#include <utils/executeondestruction.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/tooltip/tooltip.h>
diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp
index 1b313efaea..d56bac0c9d 100644
--- a/src/plugins/debugger/disassembleragent.cpp
+++ b/src/plugins/debugger/disassembleragent.cpp
@@ -43,7 +43,7 @@
#include <texteditor/texteditor.h>
#include <utils/aspects.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <QTextBlock>
diff --git a/src/plugins/designer/cpp/formclasswizardpage.cpp b/src/plugins/designer/cpp/formclasswizardpage.cpp
index 6f7e244eb5..52bdfe7ccb 100644
--- a/src/plugins/designer/cpp/formclasswizardpage.cpp
+++ b/src/plugins/designer/cpp/formclasswizardpage.cpp
@@ -31,7 +31,7 @@
#include <coreplugin/icore.h>
#include <cppeditor/cppeditorconstants.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QDebug>
#include <QMessageBox>
diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp
index eafddea3e3..ebe2f7cad3 100644
--- a/src/plugins/designer/formeditorplugin.cpp
+++ b/src/plugins/designer/formeditorplugin.cpp
@@ -39,14 +39,14 @@
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/designmode.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/designmode.h>
#include <cppeditor/cppeditorconstants.h>
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QAction>
#include <QCoreApplication>
diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp
index 4559c1df99..00df6f19b8 100644
--- a/src/plugins/designer/qtcreatorintegration.cpp
+++ b/src/plugins/designer/qtcreatorintegration.cpp
@@ -46,7 +46,7 @@
#include <projectexplorer/projecttree.h>
#include <projectexplorer/session.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index af9b4343d4..23020b9776 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -36,7 +36,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/filewizardpage.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QApplication>
#include <QDebug>
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 3a51e2c043..febceadd34 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -47,7 +47,7 @@
#include <utils/commandline.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/stringutils.h>
diff --git a/src/plugins/imageviewer/imageviewerfile.cpp b/src/plugins/imageviewer/imageviewerfile.cpp
index 3fe26890d0..0fb4e22a10 100644
--- a/src/plugins/imageviewer/imageviewerfile.cpp
+++ b/src/plugins/imageviewer/imageviewerfile.cpp
@@ -30,7 +30,7 @@
#include <coreplugin/editormanager/documentmodel.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <QFileInfo>
diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp
index f4d8974f20..a8ec473fc3 100644
--- a/src/plugins/languageclient/client.cpp
+++ b/src/plugins/languageclient/client.cpp
@@ -57,7 +57,7 @@
#include <texteditor/texteditoractionhandler.h>
#include <texteditor/texteditorsettings.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcprocess.h>
diff --git a/src/plugins/languageclient/languageclientformatter.cpp b/src/plugins/languageclient/languageclientformatter.cpp
index 6dcd1a06e4..cfb4fd4fac 100644
--- a/src/plugins/languageclient/languageclientformatter.cpp
+++ b/src/plugins/languageclient/languageclientformatter.cpp
@@ -30,7 +30,7 @@
#include <texteditor/tabsettings.h>
#include <texteditor/textdocument.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QTextDocument>
diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp
index 147abd4566..6cb306fe43 100644
--- a/src/plugins/languageclient/languageclienthoverhandler.cpp
+++ b/src/plugins/languageclient/languageclienthoverhandler.cpp
@@ -29,7 +29,7 @@
#include <texteditor/textdocument.h>
#include <texteditor/texteditor.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/tooltip/tooltip.h>
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index 992138f06a..762bac6e49 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -42,7 +42,6 @@
#include <texteditor/textmark.h>
#include <utils/algorithm.h>
#include <utils/executeondestruction.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/theme/theme.h>
#include <utils/utilsicons.h>
diff --git a/src/plugins/languageclient/languageclientoutline.cpp b/src/plugins/languageclient/languageclientoutline.cpp
index 3881e5d722..f4ebb0ecf0 100644
--- a/src/plugins/languageclient/languageclientoutline.cpp
+++ b/src/plugins/languageclient/languageclientoutline.cpp
@@ -28,13 +28,12 @@
#include "languageclientmanager.h"
#include "languageclientutils.h"
-#include <coreplugin/find/itemviewfind.h>
#include <coreplugin/editormanager/ieditor.h>
+#include <coreplugin/find/itemviewfind.h>
#include <languageserverprotocol/languagefeatures.h>
#include <texteditor/textdocument.h>
#include <texteditor/texteditor.h>
#include <utils/itemviews.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/treemodel.h>
#include <utils/treeviewcombobox.h>
#include <utils/utilsicons.h>
diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp
index 9a43eca7f9..09fa2d7a1c 100644
--- a/src/plugins/languageclient/languageclientsettings.cpp
+++ b/src/plugins/languageclient/languageclientsettings.cpp
@@ -41,12 +41,11 @@
#include <texteditor/textmark.h>
#include <utils/algorithm.h>
-#include <utils/utilsicons.h>
#include <utils/delegates.h>
#include <utils/fancylineedit.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/jsontreeitem.h>
#include <utils/stringutils.h>
+#include <utils/utilsicons.h>
#include <utils/variablechooser.h>
#include <QBoxLayout>
diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp
index 10e2d23019..447577d6a8 100644
--- a/src/plugins/languageclient/languageclientsymbolsupport.cpp
+++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp
@@ -31,7 +31,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/find/searchresultwindow.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QFile>
diff --git a/src/plugins/languageclient/semantichighlightsupport.cpp b/src/plugins/languageclient/semantichighlightsupport.cpp
index 41e88e9228..031794e8ec 100644
--- a/src/plugins/languageclient/semantichighlightsupport.cpp
+++ b/src/plugins/languageclient/semantichighlightsupport.cpp
@@ -32,7 +32,7 @@
#include <texteditor/syntaxhighlighter.h>
#include <texteditor/texteditor.h>
#include <texteditor/texteditorsettings.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QTextDocument>
diff --git a/src/plugins/modeleditor/modelindexer.cpp b/src/plugins/modeleditor/modelindexer.cpp
index d05cf9ecb3..622e7204cb 100644
--- a/src/plugins/modeleditor/modelindexer.cpp
+++ b/src/plugins/modeleditor/modelindexer.cpp
@@ -43,10 +43,9 @@
#include <projectexplorer/session.h>
#include <projectexplorer/projectnodes.h>
-#include <utils/mimetypes/mimetype.h>
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/qtcassert.h>
+#include <utils/mimeutils.h>
#include <utils/porting.h>
+#include <utils/qtcassert.h>
#include <QQueue>
#include <QMutex>
diff --git a/src/plugins/nim/project/nimbuildconfiguration.cpp b/src/plugins/nim/project/nimbuildconfiguration.cpp
index e27b1374f2..48d91b40a4 100644
--- a/src/plugins/nim/project/nimbuildconfiguration.cpp
+++ b/src/plugins/nim/project/nimbuildconfiguration.cpp
@@ -39,7 +39,6 @@
#include <projectexplorer/target.h>
#include <utils/aspects.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
using namespace ProjectExplorer;
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index f5aec089ce..c0907d6d73 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -49,10 +49,9 @@
#include <utils/algorithm.h>
#include <utils/detailswidget.h>
-#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/mimetypes/mimetype.h>
#include <utils/layoutbuilder.h>
+#include <utils/macroexpander.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/variablechooser.h>
diff --git a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
index 5edaf05919..93b38e0584 100644
--- a/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
+++ b/src/plugins/projectexplorer/customwizard/customwizardparameters.cpp
@@ -30,7 +30,7 @@
#include <cppeditor/cppeditorconstants.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
#include <utils/templateengine.h>
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp b/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp
index 75c2daf716..8a34a1bb22 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonkitspage.cpp
@@ -35,7 +35,7 @@
#include <utils/algorithm.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
using namespace Core;
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp
index a49b01fd48..999ba78a16 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardgeneratorfactory.cpp
@@ -42,9 +42,9 @@
#include <texteditor/textindenter.h>
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/stringutils.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
+#include <utils/stringutils.h>
#include <QCoreApplication>
#include <QDebug>
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardscannergenerator.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardscannergenerator.cpp
index 51ffd37b91..6fa6e42298 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonwizardscannergenerator.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardscannergenerator.cpp
@@ -34,9 +34,9 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/qtcassert.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
+#include <utils/qtcassert.h>
#include <QCoreApplication>
#include <QDir>
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 6bdbd0b6d9..863630f4d9 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -139,7 +139,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/macroexpander.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/parameteraction.h>
#include <utils/processhandle.h>
#include <utils/proxyaction.h>
diff --git a/src/plugins/projectexplorer/projectfilewizardextension.cpp b/src/plugins/projectexplorer/projectfilewizardextension.cpp
index 52b20b3ad0..fc3fb6ec5f 100644
--- a/src/plugins/projectexplorer/projectfilewizardextension.cpp
+++ b/src/plugins/projectexplorer/projectfilewizardextension.cpp
@@ -44,7 +44,7 @@
#include <texteditor/tabsettings.h>
#include <texteditor/texteditorsettings.h>
#include <texteditor/textindenter.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QPointer>
#include <QDebug>
diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp
index 7b6866f92a..3915a733ec 100644
--- a/src/plugins/projectexplorer/projectnodes.cpp
+++ b/src/plugins/projectexplorer/projectnodes.cpp
@@ -39,8 +39,7 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
-#include <utils/mimetypes/mimetype.h>
+#include <utils/mimeutils.h>
#include <utils/pointeralgorithm.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
diff --git a/src/plugins/projectexplorer/simpleprojectwizard.cpp b/src/plugins/projectexplorer/simpleprojectwizard.cpp
index 82a30658aa..6d7b2e2884 100644
--- a/src/plugins/projectexplorer/simpleprojectwizard.cpp
+++ b/src/plugins/projectexplorer/simpleprojectwizard.cpp
@@ -42,7 +42,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/filewizardpage.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/wizard.h>
#include <QApplication>
diff --git a/src/plugins/projectexplorer/treescanner.h b/src/plugins/projectexplorer/treescanner.h
index 2699244892..ff73e8e563 100644
--- a/src/plugins/projectexplorer/treescanner.h
+++ b/src/plugins/projectexplorer/treescanner.h
@@ -28,8 +28,8 @@
#include "projectexplorer_export.h"
#include "projectnodes.h"
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/fileutils.h>
+#include <utils/mimeutils.h>
#include <QObject>
#include <QFuture>
diff --git a/src/plugins/python/pythonutils.cpp b/src/plugins/python/pythonutils.cpp
index eb1247dd72..aff91c7098 100644
--- a/src/plugins/python/pythonutils.cpp
+++ b/src/plugins/python/pythonutils.cpp
@@ -36,7 +36,7 @@
#include <projectexplorer/target.h>
#include <utils/algorithm.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcprocess.h>
using namespace Utils;
diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
index be80dfcb7f..2e242fa126 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp
@@ -46,7 +46,6 @@
#include <qtsupport/qtkitinformation.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
index 018b4c339f..d3683127ad 100644
--- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp
@@ -56,10 +56,8 @@
#include <qtsupport/qtkitinformation.h>
#include <qtsupport/qtversionmanager.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
-#include <utils/qtcassert.h>
#include <QDebug>
#include <QInputDialog>
diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
index 0931743f9b..de37451d5d 100644
--- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
@@ -46,13 +46,13 @@
#include <texteditor/tabsettings.h>
#include <texteditor/texteditorsettings.h>
+#include <utils/QtConcurrentTools>
#include <utils/algorithm.h>
#include <utils/filesystemwatcher.h>
+#include <utils/mimeutils.h>
#include <utils/qtcprocess.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/stringutils.h>
#include <utils/temporarydirectory.h>
-#include <utils/QtConcurrentTools>
#include <QLoggingCategory>
#include <QMessageBox>
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index 5d60d88b97..dffea44be2 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -55,7 +55,7 @@
#include <utils/algorithm.h>
#include <utils/hostosinfo.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QDir>
#include <QFile>
diff --git a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
index 2667fcb66b..602a880fad 100644
--- a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
@@ -37,7 +37,7 @@
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/target.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <QComboBox>
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index f4363afe93..0c2a8f1530 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -49,7 +49,6 @@
#include <utils/aspects.h>
#include <utils/environment.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/qtcprocess.h>
#include <utils/winutils.h>
diff --git a/src/plugins/resourceeditor/resourcenode.cpp b/src/plugins/resourceeditor/resourcenode.cpp
index 75f35da4d8..30070e7ec7 100644
--- a/src/plugins/resourceeditor/resourcenode.cpp
+++ b/src/plugins/resourceeditor/resourcenode.cpp
@@ -34,7 +34,7 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/threadutils.h>
diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
index 86dcc2314e..5e54868411 100644
--- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp
+++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
@@ -51,10 +51,10 @@
#include <qmldesigner/qmldesignerplugin.h>
#include <utils/checkablemessagebox.h>
+#include <utils/dynamiclicensecheck.h>
#include <utils/hostosinfo.h>
#include <utils/icon.h>
#include <utils/infobar.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <utils/stringutils.h>
#include <utils/theme/theme.h>
diff --git a/src/plugins/texteditor/highlighter.cpp b/src/plugins/texteditor/highlighter.cpp
index 5a7cb01705..47204ab890 100644
--- a/src/plugins/texteditor/highlighter.cpp
+++ b/src/plugins/texteditor/highlighter.cpp
@@ -34,7 +34,7 @@
#include <coreplugin/editormanager/documentmodel.h>
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/qtcassert.h>
#include <utils/stylehelper.h>
diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp
index 696e4caf0a..e31f9044fb 100644
--- a/src/plugins/texteditor/textdocument.cpp
+++ b/src/plugins/texteditor/textdocument.cpp
@@ -27,21 +27,21 @@
#include "extraencodingsettings.h"
#include "fontsettings.h"
-#include "textindenter.h"
#include "storagesettings.h"
#include "syntaxhighlighter.h"
#include "tabsettings.h"
#include "textdocumentlayout.h"
#include "texteditor.h"
#include "texteditorconstants.h"
+#include "textindenter.h"
#include "typingsettings.h"
#include <coreplugin/diffservice.h>
-#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/documentmodel.h>
+#include <coreplugin/editormanager/editormanager.h>
#include <extensionsystem/pluginmanager.h>
-#include <utils/textutils.h>
#include <utils/guard.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
+#include <utils/textutils.h>
#include <QAction>
#include <QApplication>
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 2560f58e93..890e8f5fcb 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -79,7 +79,7 @@
#include <utils/fixedsizeclicklabel.h>
#include <utils/hostosinfo.h>
#include <utils/infobar.h>
-#include <utils/mimetypes/mimedatabase.h>
+#include <utils/mimeutils.h>
#include <utils/multitextcursor.h>
#include <utils/qtcassert.h>
#include <utils/styledbar.h>
diff --git a/tests/auto/languageserverprotocol/tst_languageserverprotocol.cpp b/tests/auto/languageserverprotocol/tst_languageserverprotocol.cpp
index 20fb60cd53..406718ac27 100644
--- a/tests/auto/languageserverprotocol/tst_languageserverprotocol.cpp
+++ b/tests/auto/languageserverprotocol/tst_languageserverprotocol.cpp
@@ -26,8 +26,6 @@
#include <languageserverprotocol/basemessage.h>
#include <languageserverprotocol/jsonobject.h>
#include <languageserverprotocol/jsonrpcmessages.h>
-#include <utils/mimetypes/mimetype.h>
-#include <utils/mimetypes/mimedatabase.h>
#include <QTextCodec>
#include <QtTest>