From d64e17ad55f155951fc76e4c2f04299aa9c7a912 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 8 Feb 2017 14:31:55 +0100 Subject: [PATCH] Move mimetype definitions to plugin specs - Avoids the hassle of QRC files and manually registering mime types - Avoids performance regressions because of mime types that are registered after mime database has been used - Makes it technically possible to detect that a disabled plugin could handle a mime type if it was enabled Change-Id: I373008b1b56e9c6b4853055f20b3eeb112a6eff9 Reviewed-by: Christian Stenger Reviewed-by: hjk --- qbs/imports/QtcPlugin.qbs | 6 -- src/libs/extensionsystem/pluginspec.cpp | 48 +++++---- src/libs/extensionsystem/pluginspec.h | 1 + src/libs/extensionsystem/pluginspec_p.h | 3 +- src/libs/utils/mimetypes/mimedatabase.cpp | 4 +- src/libs/utils/mimetypes/mimedatabase.h | 2 +- src/libs/utils/mimetypes/mimeprovider.cpp | 31 ++++-- src/libs/utils/mimetypes/mimeprovider_p.h | 5 +- src/plugins/android/Android.json.in | 13 ++- src/plugins/android/Android.mimetypes.xml | 8 -- src/plugins/android/android.qrc | 1 - src/plugins/android/androidplugin.cpp | 4 - src/plugins/clearcase/ClearCase.json.in | 12 ++- src/plugins/clearcase/clearcase.pro | 2 - src/plugins/clearcase/clearcase.qbs | 1 - src/plugins/clearcase/clearcase.qrc | 5 - src/plugins/clearcase/clearcaseplugin.cpp | 3 - .../CMakeProjectManager.json.in | 18 +++- .../CMakeProjectManager.mimetypes.xml | 13 --- .../cmakeprojectmanager/cmakeproject.qrc | 1 - .../cmakeprojectplugin.cpp | 3 - src/plugins/coreplugin/coreplugin.cpp | 13 +++ src/plugins/coreplugin/coreplugin.pro | 1 - src/plugins/cpptools/CppTools.json.in | 100 +++++++++++++++++- src/plugins/cpptools/CppTools.mimetypes.xml | 95 ----------------- src/plugins/cpptools/cpptools.qrc | 1 - src/plugins/cpptools/cpptoolsplugin.cpp | 2 - src/plugins/cvs/CVS.json.in | 12 ++- src/plugins/cvs/CVS.mimetypes.xml | 7 -- src/plugins/cvs/cvs.pro | 2 - src/plugins/cvs/cvs.qbs | 1 - src/plugins/cvs/cvs.qrc | 5 - src/plugins/cvs/cvsplugin.cpp | 3 - src/plugins/debugger/Debugger.json.in | 19 +++- src/plugins/debugger/Debugger.mimetypes.xml | 14 --- src/plugins/debugger/debugger.qrc | 1 - src/plugins/debugger/debuggerplugin.cpp | 3 - .../GenericProjectManager.json.in | 33 +++++- .../GenericProjectManager.mimetypes.xml | 28 ----- .../genericprojectmanager/genericproject.qrc | 5 - .../genericprojectmanager.pro | 1 - .../genericprojectmanager.qbs | 1 - .../genericprojectplugin.cpp | 2 - src/plugins/git/Git.json.in | 19 +++- src/plugins/git/Git.mimetypes.xml | 14 --- src/plugins/git/git.qrc | 1 - src/plugins/git/gitplugin.cpp | 4 - src/plugins/glsleditor/GLSLEditor.json.in | 47 +++++++- .../glsleditor/GLSLEditor.mimetypes.xml | 42 -------- src/plugins/glsleditor/glsleditor.qrc | 1 - src/plugins/glsleditor/glsleditorplugin.cpp | 3 - src/plugins/imageviewer/ImageViewer.json.in | 14 ++- .../imageviewer/ImageViewer.mimetypes.xml | 9 -- src/plugins/imageviewer/imageviewer.pro | 3 - src/plugins/imageviewer/imageviewer.qbs | 1 - src/plugins/imageviewer/imageviewer.qrc | 5 - src/plugins/imageviewer/imageviewerplugin.cpp | 3 - src/plugins/modeleditor/ModelEditor.json.in | 13 ++- .../modeleditor/modeleditor_plugin.cpp | 4 - .../resources/modeleditor.mimetypes.xml | 8 -- .../modeleditor/resources/modeleditor.qrc | 1 - src/plugins/nim/Nim.json.in | 26 ++++- src/plugins/nim/Nim.mimetypes.xml | 21 ---- src/plugins/nim/nim.qrc | 1 - src/plugins/nim/nimplugin.cpp | 3 - src/plugins/perforce/Perforce.json.in | 15 ++- src/plugins/perforce/Perforce.mimetypes.xml | 10 -- src/plugins/perforce/perforce.pro | 2 - src/plugins/perforce/perforce.qbs | 1 - src/plugins/perforce/perforce.qrc | 5 - src/plugins/perforce/perforceplugin.cpp | 3 - src/plugins/pythoneditor/PythonEditor.json.in | 18 +++- .../pythoneditor/PythonEditor.mimetypes.xml | 13 --- src/plugins/pythoneditor/pythoneditor.pro | 3 - src/plugins/pythoneditor/pythoneditor.qbs | 1 - .../pythoneditor/pythoneditorplugin.cpp | 3 - .../pythoneditor/pythoneditorplugin.qrc | 5 - .../QmakeProjectManager.json.in | 38 ++++++- .../QmakeProjectManager.mimetypes.xml | 33 ------ .../qmakeprojectmanager.qrc | 1 - .../qmakeprojectmanagerplugin.cpp | 3 - src/plugins/qmljstools/QmlJSTools.json.in | 44 +++++++- .../qmljstools/QmlJSTools.mimetypes.xml | 39 ------- src/plugins/qmljstools/qmljstools.qrc | 1 - src/plugins/qmljstools/qmljstoolsplugin.cpp | 3 - .../QmlProjectManager.json.in | 14 ++- .../QmlProjectManager.mimetypes.xml | 9 -- src/plugins/qmlprojectmanager/qmlproject.qrc | 1 - .../qmlprojectmanager/qmlprojectplugin.cpp | 3 - src/plugins/qtsupport/QtSupport.json.in | 24 ++++- src/plugins/qtsupport/QtSupport.mimetypes.xml | 19 ---- src/plugins/qtsupport/qtsupport.qrc | 1 - src/plugins/qtsupport/qtsupportplugin.cpp | 3 - .../resourceeditor/ResourceEditor.json.in | 13 ++- .../ResourceEditor.mimetypes.xml | 8 -- src/plugins/resourceeditor/resourceeditor.pro | 2 - src/plugins/resourceeditor/resourceeditor.qbs | 1 - src/plugins/resourceeditor/resourceeditor.qrc | 5 - .../resourceeditor/resourceeditorplugin.cpp | 2 - src/plugins/scxmleditor/ScxmlEditor.json.in | 13 ++- .../scxmleditor/ScxmlEditor.mimetypes.xml | 8 -- src/plugins/scxmleditor/resources.qrc | 5 - src/plugins/scxmleditor/scxmleditor.pro | 3 - src/plugins/scxmleditor/scxmleditor.qbs | 2 - src/plugins/scxmleditor/scxmleditorplugin.cpp | 2 - src/plugins/subversion/Subversion.json.in | 12 ++- .../subversion/Subversion.mimetypes.xml | 7 -- src/plugins/subversion/subversion.pro | 2 - src/plugins/subversion/subversion.qbs | 1 - src/plugins/subversion/subversion.qrc | 5 - src/plugins/subversion/subversionplugin.cpp | 3 - src/plugins/tasklist/TaskList.json.in | 14 ++- src/plugins/tasklist/TaskList.mimetypes.xml | 9 -- src/plugins/tasklist/tasklist.pro | 2 - src/plugins/tasklist/tasklist.qbs | 1 - src/plugins/tasklist/tasklist.qrc | 5 - src/plugins/tasklist/tasklistplugin.cpp | 3 - src/qtcreatorplugin.pri | 3 - .../unit/unittest/mimedatabase-utilities.cpp | 17 ++- tests/unit/unittest/unittest.pro | 7 ++ 120 files changed, 596 insertions(+), 650 deletions(-) delete mode 100644 src/plugins/android/Android.mimetypes.xml delete mode 100644 src/plugins/clearcase/clearcase.qrc delete mode 100644 src/plugins/cmakeprojectmanager/CMakeProjectManager.mimetypes.xml delete mode 100644 src/plugins/cpptools/CppTools.mimetypes.xml delete mode 100644 src/plugins/cvs/CVS.mimetypes.xml delete mode 100644 src/plugins/cvs/cvs.qrc delete mode 100644 src/plugins/debugger/Debugger.mimetypes.xml delete mode 100644 src/plugins/genericprojectmanager/GenericProjectManager.mimetypes.xml delete mode 100644 src/plugins/genericprojectmanager/genericproject.qrc delete mode 100644 src/plugins/git/Git.mimetypes.xml delete mode 100644 src/plugins/glsleditor/GLSLEditor.mimetypes.xml delete mode 100644 src/plugins/imageviewer/ImageViewer.mimetypes.xml delete mode 100644 src/plugins/imageviewer/imageviewer.qrc delete mode 100644 src/plugins/modeleditor/resources/modeleditor.mimetypes.xml delete mode 100644 src/plugins/nim/Nim.mimetypes.xml delete mode 100644 src/plugins/perforce/Perforce.mimetypes.xml delete mode 100644 src/plugins/perforce/perforce.qrc delete mode 100644 src/plugins/pythoneditor/PythonEditor.mimetypes.xml delete mode 100644 src/plugins/pythoneditor/pythoneditorplugin.qrc delete mode 100644 src/plugins/qmakeprojectmanager/QmakeProjectManager.mimetypes.xml delete mode 100644 src/plugins/qmljstools/QmlJSTools.mimetypes.xml delete mode 100644 src/plugins/qmlprojectmanager/QmlProjectManager.mimetypes.xml delete mode 100644 src/plugins/qtsupport/QtSupport.mimetypes.xml delete mode 100644 src/plugins/resourceeditor/ResourceEditor.mimetypes.xml delete mode 100644 src/plugins/resourceeditor/resourceeditor.qrc delete mode 100644 src/plugins/scxmleditor/ScxmlEditor.mimetypes.xml delete mode 100644 src/plugins/scxmleditor/resources.qrc delete mode 100644 src/plugins/subversion/Subversion.mimetypes.xml delete mode 100644 src/plugins/subversion/subversion.qrc delete mode 100644 src/plugins/tasklist/TaskList.mimetypes.xml delete mode 100644 src/plugins/tasklist/tasklist.qrc diff --git a/qbs/imports/QtcPlugin.qbs b/qbs/imports/QtcPlugin.qbs index d0159dceef8..17d43e45820 100644 --- a/qbs/imports/QtcPlugin.qbs +++ b/qbs/imports/QtcPlugin.qbs @@ -55,12 +55,6 @@ QtcProduct { fileTags: ["pluginJsonIn"] } - Group { - name: "MimeTypes" - prefix: product.sourceDirectory + '/' - files: [ "*.mimetypes.xml" ] - } - Export { Depends { name: "ExtensionSystem" } Depends { name: "cpp" } diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp index c839b8ea3fe..19be010c4de 100644 --- a/src/libs/extensionsystem/pluginspec.cpp +++ b/src/libs/extensionsystem/pluginspec.cpp @@ -360,6 +360,11 @@ QVector PluginSpec::dependencies() const return d->dependencies; } +QJsonObject PluginSpec::metaData() const +{ + return d->metaData; +} + /*! Returns a list of descriptions of command line arguments the plugin processes. */ @@ -539,6 +544,7 @@ bool PluginSpecPrivate::read(const QString &fileName) hasError = false; errorString.clear(); dependencies.clear(); + metaData = QJsonObject(); QFileInfo fileInfo(fileName); location = fileInfo.absolutePath(); filePath = fileInfo.absoluteFilePath(); @@ -650,11 +656,11 @@ static inline bool readMultiLineString(const QJsonValue &value, QString *out) /*! \internal */ -bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) +bool PluginSpecPrivate::readMetaData(const QJsonObject &pluginMetaData) { - qCDebug(pluginLog) << "MetaData:" << QJsonDocument(metaData).toJson(); + qCDebug(pluginLog) << "MetaData:" << QJsonDocument(pluginMetaData).toJson(); QJsonValue value; - value = metaData.value(QLatin1String("IID")); + value = pluginMetaData.value(QLatin1String("IID")); if (!value.isString()) { qCDebug(pluginLog) << "Not a plugin (no string IID found)"; return false; @@ -664,19 +670,19 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) return false; } - value = metaData.value(QLatin1String(PLUGIN_METADATA)); + value = pluginMetaData.value(QLatin1String(PLUGIN_METADATA)); if (!value.isObject()) return reportError(tr("Plugin meta data not found")); - QJsonObject pluginInfo = value.toObject(); + metaData = value.toObject(); - value = pluginInfo.value(QLatin1String(PLUGIN_NAME)); + value = metaData.value(QLatin1String(PLUGIN_NAME)); if (value.isUndefined()) return reportError(msgValueMissing(PLUGIN_NAME)); if (!value.isString()) return reportError(msgValueIsNotAString(PLUGIN_NAME)); name = value.toString(); - value = pluginInfo.value(QLatin1String(PLUGIN_VERSION)); + value = metaData.value(QLatin1String(PLUGIN_VERSION)); if (value.isUndefined()) return reportError(msgValueMissing(PLUGIN_VERSION)); if (!value.isString()) @@ -685,32 +691,32 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) if (!isValidVersion(version)) return reportError(msgInvalidFormat(PLUGIN_VERSION, version)); - value = pluginInfo.value(QLatin1String(PLUGIN_COMPATVERSION)); + value = metaData.value(QLatin1String(PLUGIN_COMPATVERSION)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(PLUGIN_COMPATVERSION)); compatVersion = value.toString(version); if (!value.isUndefined() && !isValidVersion(compatVersion)) return reportError(msgInvalidFormat(PLUGIN_COMPATVERSION, compatVersion)); - value = pluginInfo.value(QLatin1String(PLUGIN_REQUIRED)); + value = metaData.value(QLatin1String(PLUGIN_REQUIRED)); if (!value.isUndefined() && !value.isBool()) return reportError(msgValueIsNotABool(PLUGIN_REQUIRED)); required = value.toBool(false); qCDebug(pluginLog) << "required =" << required; - value = pluginInfo.value(QLatin1String(PLUGIN_HIDDEN_BY_DEFAULT)); + value = metaData.value(QLatin1String(PLUGIN_HIDDEN_BY_DEFAULT)); if (!value.isUndefined() && !value.isBool()) return reportError(msgValueIsNotABool(PLUGIN_HIDDEN_BY_DEFAULT)); hiddenByDefault = value.toBool(false); qCDebug(pluginLog) << "hiddenByDefault =" << hiddenByDefault; - value = pluginInfo.value(QLatin1String(PLUGIN_EXPERIMENTAL)); + value = metaData.value(QLatin1String(PLUGIN_EXPERIMENTAL)); if (!value.isUndefined() && !value.isBool()) return reportError(msgValueIsNotABool(PLUGIN_EXPERIMENTAL)); experimental = value.toBool(false); qCDebug(pluginLog) << "experimental =" << experimental; - value = pluginInfo.value(QLatin1String(PLUGIN_DISABLED_BY_DEFAULT)); + value = metaData.value(QLatin1String(PLUGIN_DISABLED_BY_DEFAULT)); if (!value.isUndefined() && !value.isBool()) return reportError(msgValueIsNotABool(PLUGIN_DISABLED_BY_DEFAULT)); enabledByDefault = !value.toBool(false); @@ -720,35 +726,35 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) enabledByDefault = false; enabledBySettings = enabledByDefault; - value = pluginInfo.value(QLatin1String(VENDOR)); + value = metaData.value(QLatin1String(VENDOR)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(VENDOR)); vendor = value.toString(); - value = pluginInfo.value(QLatin1String(COPYRIGHT)); + value = metaData.value(QLatin1String(COPYRIGHT)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(COPYRIGHT)); copyright = value.toString(); - value = pluginInfo.value(QLatin1String(DESCRIPTION)); + value = metaData.value(QLatin1String(DESCRIPTION)); if (!value.isUndefined() && !readMultiLineString(value, &description)) return reportError(msgValueIsNotAString(DESCRIPTION)); - value = pluginInfo.value(QLatin1String(URL)); + value = metaData.value(QLatin1String(URL)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(URL)); url = value.toString(); - value = pluginInfo.value(QLatin1String(CATEGORY)); + value = metaData.value(QLatin1String(CATEGORY)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(CATEGORY)); category = value.toString(); - value = pluginInfo.value(QLatin1String(LICENSE)); + value = metaData.value(QLatin1String(LICENSE)); if (!value.isUndefined() && !readMultiLineString(value, &license)) return reportError(msgValueIsNotAMultilineString(LICENSE)); - value = pluginInfo.value(QLatin1String(PLATFORM)); + value = metaData.value(QLatin1String(PLATFORM)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(PLATFORM)); const QString platformSpec = value.toString().trimmed(); @@ -759,7 +765,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) .arg(platformSpec, platformSpecification.errorString())); } - value = pluginInfo.value(QLatin1String(DEPENDENCIES)); + value = metaData.value(QLatin1String(DEPENDENCIES)); if (!value.isUndefined() && !value.isArray()) return reportError(msgValueIsNotAObjectArray(DEPENDENCIES)); if (!value.isUndefined()) { @@ -806,7 +812,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &metaData) } } - value = pluginInfo.value(QLatin1String(ARGUMENTS)); + value = metaData.value(QLatin1String(ARGUMENTS)); if (!value.isUndefined() && !value.isArray()) return reportError(msgValueIsNotAObjectArray(ARGUMENTS)); if (!value.isUndefined()) { diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h index 64725c8e9f7..0462acddefe 100644 --- a/src/libs/extensionsystem/pluginspec.h +++ b/src/libs/extensionsystem/pluginspec.h @@ -104,6 +104,7 @@ public: bool isForceEnabled() const; bool isForceDisabled() const; QVector dependencies() const; + QJsonObject metaData() const; typedef QVector PluginArgumentDescriptions; PluginArgumentDescriptions argumentDescriptions() const; diff --git a/src/libs/extensionsystem/pluginspec_p.h b/src/libs/extensionsystem/pluginspec_p.h index 86790da8eca..e0ac647d143 100644 --- a/src/libs/extensionsystem/pluginspec_p.h +++ b/src/libs/extensionsystem/pluginspec_p.h @@ -82,6 +82,7 @@ public: QString category; QRegExp platformSpecification; QVector dependencies; + QJsonObject metaData; bool enabledBySettings = true; bool enabledIndirectly = false; bool forceEnabled = false; @@ -104,7 +105,7 @@ public: void enableDependenciesIndirectly(); - bool readMetaData(const QJsonObject &metaData); + bool readMetaData(const QJsonObject &pluginMetaData); private: PluginSpec *q; diff --git a/src/libs/utils/mimetypes/mimedatabase.cpp b/src/libs/utils/mimetypes/mimedatabase.cpp index 12f37ee4fa6..2e2db7db9bc 100644 --- a/src/libs/utils/mimetypes/mimedatabase.cpp +++ b/src/libs/utils/mimetypes/mimedatabase.cpp @@ -331,7 +331,7 @@ MimeDatabase::~MimeDatabase() d = 0; } -void MimeDatabase::addMimeTypes(const QString &fileName) +void MimeDatabase::addMimeTypes(const QString &fileName, const QByteArray &data) { auto d = MimeDatabasePrivate::instance(); QMutexLocker locker(&d->mutex); @@ -341,7 +341,7 @@ void MimeDatabase::addMimeTypes(const QString &fileName) qPrintable(fileName)); auto xmlProvider = static_cast(d->provider()); - xmlProvider->addFile(fileName); + xmlProvider->addData(fileName, data); } QString MimeDatabase::allFiltersString(QString *allFilesFilter) diff --git a/src/libs/utils/mimetypes/mimedatabase.h b/src/libs/utils/mimetypes/mimedatabase.h index a31ef26c931..f962c35eb33 100644 --- a/src/libs/utils/mimetypes/mimedatabase.h +++ b/src/libs/utils/mimetypes/mimedatabase.h @@ -89,7 +89,7 @@ public: QList allMimeTypes() const; // Qt Creator additions - static void addMimeTypes(const QString &fileName); + static void addMimeTypes(const QString &id, const QByteArray &data); static QString allFiltersString(QString *allFilesFilter = 0); static QString allFilesFilterString(); static QStringList allGlobPatterns(); diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp index e13de9b4713..68f69a2ed22 100644 --- a/src/libs/utils/mimetypes/mimeprovider.cpp +++ b/src/libs/utils/mimetypes/mimeprovider.cpp @@ -782,16 +782,16 @@ void MimeXMLProvider::setMagicRulesForMimeType(const MimeType &mimeType, const Q void MimeXMLProvider::ensureLoaded() { if (!m_loaded /*|| shouldCheck()*/) { + m_loaded = true; // bool fdoXmlFound = false; - // add custom mime types first, which overrides any default from freedesktop.org.xml - QStringList allFiles = m_additionalFiles; + QStringList allFiles; // const QStringList packageDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/packages"), QStandardPaths::LocateDirectory); // //qDebug() << "packageDirs=" << packageDirs; -// foreach (const QString &packageDir, packageDirs) { +// for (const QString &packageDir : packageDirs) { // QDir dir(packageDir); // const QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); -// //qDebug() << static_cast(this) << Q_FUNC_INFO << packageDir << files; +// //qDebug() << static_cast(this) << packageDir << files; // if (!fdoXmlFound) // fdoXmlFound = files.contains(QLatin1String("freedesktop.org.xml")); // QStringList::const_iterator endIt(files.constEnd()); @@ -802,13 +802,9 @@ void MimeXMLProvider::ensureLoaded() // if (!fdoXmlFound) { // // We could instead install the file as part of installing Qt? - allFiles.append(QLatin1String(":/qt-project.org/qmime/freedesktop.org.xml")); + allFiles.prepend(QLatin1String(":/qt-project.org/qmime/freedesktop.org.xml")); // } - if (m_allFiles == allFiles) - return; - m_allFiles = allFiles; - m_nameMimeTypeMap.clear(); m_aliases.clear(); m_parents.clear(); @@ -817,6 +813,17 @@ void MimeXMLProvider::ensureLoaded() //qDebug() << "Loading" << m_allFiles; + // add custom mime types first, which override any default from freedesktop.org.xml + MimeTypeParser parser(*this); + QHashIterator it(m_additionalData); + while (it.hasNext()) { + it.next(); + QString errorMessage; + if (!parser.parse(it.value(), it.key(), &errorMessage)) { + qWarning("MimeDatabase: Error loading %s\n%s", qPrintable(it.key()), + qPrintable(errorMessage)); + } + } foreach (const QString &file, allFiles) load(file); } @@ -904,8 +911,10 @@ void MimeXMLProvider::addMagicMatcher(const MimeMagicRuleMatcher &matcher) m_magicMatchers.append(matcher); } -void MimeXMLProvider::addFile(const QString &filePath) +void MimeXMLProvider::addData(const QString &id, const QByteArray &data) { - m_additionalFiles.append(filePath); + if (m_additionalData.contains(id)) + qWarning("Overwriting data in mime database, id '%s'", qPrintable(id)); + m_additionalData.insert(id, data); m_loaded = false; // force reload to ensure correct load order for overridden mime types } diff --git a/src/libs/utils/mimetypes/mimeprovider_p.h b/src/libs/utils/mimetypes/mimeprovider_p.h index 267a54fbaf3..deda7b9645c 100644 --- a/src/libs/utils/mimetypes/mimeprovider_p.h +++ b/src/libs/utils/mimetypes/mimeprovider_p.h @@ -160,7 +160,7 @@ public: void addMagicMatcher(const MimeMagicRuleMatcher &matcher); // Qt Creator additions - void addFile(const QString &filePath); + void addData(const QString &id, const QByteArray &data); QMap > magicRulesForMimeType(const MimeType &mimeType); void setGlobPatternsForMimeType(const MimeType &mimeType, const QStringList &patterns); void setMagicRulesForMimeType(const MimeType &mimeType, const QMap > &rules); @@ -182,10 +182,9 @@ private: MimeAllGlobPatterns m_mimeTypeGlobs; QList m_magicMatchers; - QStringList m_allFiles; // Qt Creator additions - QStringList m_additionalFiles; + QHash m_additionalData; // id -> data }; } // Internal diff --git a/src/plugins/android/Android.json.in b/src/plugins/android/Android.json.in index 14f09e57a57..43268da1c2b 100644 --- a/src/plugins/android/Android.json.in +++ b/src/plugins/android/Android.json.in @@ -15,5 +15,16 @@ \"Category\" : \"Device Support\", \"Description\" : \"Support for deployment to and execution on Android Devices.\", \"Url\" : \"http://necessitas.kde.org\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + Android manifest file + + + + + \" } diff --git a/src/plugins/android/Android.mimetypes.xml b/src/plugins/android/Android.mimetypes.xml deleted file mode 100644 index 684fdc99710..00000000000 --- a/src/plugins/android/Android.mimetypes.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Android manifest file - - - - diff --git a/src/plugins/android/android.qrc b/src/plugins/android/android.qrc index 13a40d9427a..26b9b148d3c 100644 --- a/src/plugins/android/android.qrc +++ b/src/plugins/android/android.qrc @@ -5,6 +5,5 @@ images/androiddevicesmall.png images/androiddevicesmall@2x.png images/download.png - Android.mimetypes.xml diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp index 4c6a31ab8b4..5619958ac11 100644 --- a/src/plugins/android/androidplugin.cpp +++ b/src/plugins/android/androidplugin.cpp @@ -52,8 +52,6 @@ #include -#include - #include using namespace ProjectExplorer; @@ -81,8 +79,6 @@ bool AndroidPlugin::initialize(const QStringList &arguments, QString *errorMessa addAutoReleasedObject(new Internal::JavaEditorFactory); KitManager::registerKitInformation(new Internal::AndroidGdbServerKitInformation); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/android/Android.mimetypes.xml")); - addAutoReleasedObject(new Internal::AndroidManifestEditorFactory); connect(KitManager::instance(), &KitManager::kitsLoaded, diff --git a/src/plugins/clearcase/ClearCase.json.in b/src/plugins/clearcase/ClearCase.json.in index 7f792e3cddc..707034357ee 100644 --- a/src/plugins/clearcase/ClearCase.json.in +++ b/src/plugins/clearcase/ClearCase.json.in @@ -16,5 +16,15 @@ \"Category\" : \"Version Control\", \"Description\" : \"ClearCase integration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + ClearCase submit template + + + + \" } diff --git a/src/plugins/clearcase/clearcase.pro b/src/plugins/clearcase/clearcase.pro index 4ba665196c7..46627f8b67d 100644 --- a/src/plugins/clearcase/clearcase.pro +++ b/src/plugins/clearcase/clearcase.pro @@ -31,5 +31,3 @@ FORMS += checkoutdialog.ui \ settingspage.ui \ undocheckout.ui \ versionselector.ui - -RESOURCES += clearcase.qrc diff --git a/src/plugins/clearcase/clearcase.qbs b/src/plugins/clearcase/clearcase.qbs index 9fd072a28e0..e407c9968b3 100644 --- a/src/plugins/clearcase/clearcase.qbs +++ b/src/plugins/clearcase/clearcase.qbs @@ -21,7 +21,6 @@ QtcPlugin { "checkoutdialog.cpp", "checkoutdialog.h", "checkoutdialog.ui", - "clearcase.qrc", "clearcaseconstants.h", "clearcasecontrol.cpp", "clearcasecontrol.h", diff --git a/src/plugins/clearcase/clearcase.qrc b/src/plugins/clearcase/clearcase.qrc deleted file mode 100644 index 150dedfb8fe..00000000000 --- a/src/plugins/clearcase/clearcase.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - ClearCase.mimetypes.xml - - diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 7da0b5bebf5..a8bc76c3a55 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -54,7 +54,6 @@ #include #include #include -#include #include #include #include @@ -418,8 +417,6 @@ bool ClearCasePlugin::initialize(const QStringList & /*arguments */, QString *er connect(ProgressManager::instance(), &ProgressManager::allTasksFinished, this, &ClearCasePlugin::tasksFinished); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/clearcase/ClearCase.mimetypes.xml")); - m_settings.fromSettings(ICore::settings()); // update view name when changing active project diff --git a/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in b/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in index 69e3b6b9f9f..5d75c622a8d 100644 --- a/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in +++ b/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in @@ -15,5 +15,21 @@ \"Category\" : \"Build Systems\", \"Description\" : \"CMake support.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + CMake Project file + + + + + CMake Project file + + + + \" } diff --git a/src/plugins/cmakeprojectmanager/CMakeProjectManager.mimetypes.xml b/src/plugins/cmakeprojectmanager/CMakeProjectManager.mimetypes.xml deleted file mode 100644 index 315cc3c9573..00000000000 --- a/src/plugins/cmakeprojectmanager/CMakeProjectManager.mimetypes.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - CMake Project file - - - - - CMake Project file - - - diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.qrc b/src/plugins/cmakeprojectmanager/cmakeproject.qrc index 6926b1d41de..708223bf895 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.qrc +++ b/src/plugins/cmakeprojectmanager/cmakeproject.qrc @@ -1,6 +1,5 @@ - CMakeProjectManager.mimetypes.xml images/fileoverlay_cmake.png images/fileoverlay_cmake@2x.png diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp index 27210b5970f..b91b1a944c0 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp @@ -47,7 +47,6 @@ #include #include -#include #include using namespace CMakeProjectManager::Internal; @@ -59,8 +58,6 @@ bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString * Q_UNUSED(errorMessage) const Context projectContext(Constants::PROJECTCONTEXT); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":cmakeproject/CMakeProjectManager.mimetypes.xml")); - Core::FileIconProvider::registerIconOverlayForSuffix(Constants::FILEOVERLAY_CMAKE, "cmake"); Core::FileIconProvider::registerIconOverlayForFilename(Constants::FILEOVERLAY_CMAKE, "CMakeLists.txt"); diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp index ca239d04f50..5e21d8c1349 100644 --- a/src/plugins/coreplugin/coreplugin.cpp +++ b/src/plugins/coreplugin/coreplugin.cpp @@ -46,9 +46,11 @@ #include #include +#include #include #include #include +#include #include #include #include @@ -123,6 +125,17 @@ CoreArguments parseArguments(const QStringList &arguments) bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage) { + // register all mime types from all plugins + Utils::MimeDatabase mdb; + for (ExtensionSystem::PluginSpec *plugin : ExtensionSystem::PluginManager::plugins()) { + if (!plugin->isEffectivelyEnabled()) + continue; + const QJsonObject metaData = plugin->metaData(); + const QJsonValue mimetypes = metaData.value("Mimetypes"); + if (mimetypes.isString()) + mdb.addMimeTypes(plugin->name() + ".mimetypes", mimetypes.toString().trimmed().toUtf8()); + } + if (ThemeEntry::availableThemes().isEmpty()) { *errorMessage = tr("No themes found in installation."); return false; diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index c3aa5581e8a..4b6c6ecdeda 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -264,7 +264,6 @@ else:unix { INSTALLS += image$${imagesize} } } -DISTFILES += editormanager/BinFiles.mimetypes.xml equals(TEST, 1) { SOURCES += testdatadir.cpp diff --git a/src/plugins/cpptools/CppTools.json.in b/src/plugins/cpptools/CppTools.json.in index e7193618c43..a9af2e54d6d 100644 --- a/src/plugins/cpptools/CppTools.json.in +++ b/src/plugins/cpptools/CppTools.json.in @@ -16,5 +16,103 @@ \"Category\" : \"C++\", \"Description\" : \"Tools for analyzing C/C++ code.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + C source code + + + + + + + + NVIDIA CUDA C source code + + + + + C header + + + + + + + + + C++ header + + + + + + + + + + + + + + + + + + C++ source code + + + + + + + + + + + + + + + + + + + + Qt documentation file + + + + + + Qt MOC file + + + + + + + Objective-C++ source code + + + + + + + Objective-C source code + + + + + + + + + \" } diff --git a/src/plugins/cpptools/CppTools.mimetypes.xml b/src/plugins/cpptools/CppTools.mimetypes.xml deleted file mode 100644 index 25e316c2b4e..00000000000 --- a/src/plugins/cpptools/CppTools.mimetypes.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - C source code - - - - - - - - NVIDIA CUDA C source code - - - - - C header - - - - - - - - - C++ header - - - - - - - - - - - - - - - - - - C++ source code - - - - - - - - - - - - - - - - - - - - Qt documentation file - - - - - - Qt MOC file - - - - - - - Objective-C++ source code - - - - - - - Objective-C source code - - - - - - - - diff --git a/src/plugins/cpptools/cpptools.qrc b/src/plugins/cpptools/cpptools.qrc index b1badb20834..d637f34c1c5 100644 --- a/src/plugins/cpptools/cpptools.qrc +++ b/src/plugins/cpptools/cpptools.qrc @@ -1,6 +1,5 @@ images/category_cpp.png - CppTools.mimetypes.xml diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 4386efeafbc..84cdfff4424 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -140,8 +140,6 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error) Q_UNUSED(arguments) Q_UNUSED(error) - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/cpptools/CppTools.mimetypes.xml")); - CppModelManager::instance()->setParent(this); m_settings = new CppToolsSettings(this); // force registration of cpp tools settings diff --git a/src/plugins/cvs/CVS.json.in b/src/plugins/cvs/CVS.json.in index e7cff2ae7d4..d18e228f1de 100644 --- a/src/plugins/cvs/CVS.json.in +++ b/src/plugins/cvs/CVS.json.in @@ -15,5 +15,15 @@ \"Category\" : \"Version Control\", \"Description\" : \"CVS integration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + CVS submit template + + + + \" } diff --git a/src/plugins/cvs/CVS.mimetypes.xml b/src/plugins/cvs/CVS.mimetypes.xml deleted file mode 100644 index f227093ecba..00000000000 --- a/src/plugins/cvs/CVS.mimetypes.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - CVS submit template - - - diff --git a/src/plugins/cvs/cvs.pro b/src/plugins/cvs/cvs.pro index 55572dab1a4..5753538a1d8 100644 --- a/src/plugins/cvs/cvs.pro +++ b/src/plugins/cvs/cvs.pro @@ -21,5 +21,3 @@ SOURCES += annotationhighlighter.cpp \ cvsutils.cpp FORMS += settingspage.ui - -RESOURCES += cvs.qrc diff --git a/src/plugins/cvs/cvs.qbs b/src/plugins/cvs/cvs.qbs index 63f231dadff..fc3be7e753d 100644 --- a/src/plugins/cvs/cvs.qbs +++ b/src/plugins/cvs/cvs.qbs @@ -13,7 +13,6 @@ QtcPlugin { files: [ "annotationhighlighter.cpp", "annotationhighlighter.h", - "cvs.qrc", "cvsclient.cpp", "cvsclient.h", "cvscontrol.cpp", diff --git a/src/plugins/cvs/cvs.qrc b/src/plugins/cvs/cvs.qrc deleted file mode 100644 index 8d80a8c248d..00000000000 --- a/src/plugins/cvs/cvs.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - CVS.mimetypes.xml - - diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index c3b4238efea..9360051f2b6 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -56,7 +56,6 @@ #include #include #include -#include #include #include @@ -203,8 +202,6 @@ bool CvsPlugin::initialize(const QStringList &arguments, QString *errorMessage) m_cvsPluginInstance = this; - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml")); - m_client = new CvsClient; addAutoReleasedObject(new SettingsPage(versionControl())); diff --git a/src/plugins/debugger/Debugger.json.in b/src/plugins/debugger/Debugger.json.in index eaa165e3521..458d1a84564 100644 --- a/src/plugins/debugger/Debugger.json.in +++ b/src/plugins/debugger/Debugger.json.in @@ -39,5 +39,22 @@ \"Description\" : \"Event handle used for attaching to crashed processes\" } ], - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Assembler + + + + + + Qt Creator Generic Assembler + + + + \" } diff --git a/src/plugins/debugger/Debugger.mimetypes.xml b/src/plugins/debugger/Debugger.mimetypes.xml deleted file mode 100644 index c59d5ea56a0..00000000000 --- a/src/plugins/debugger/Debugger.mimetypes.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Assembler - - - - - - Qt Creator Generic Assembler - - - diff --git a/src/plugins/debugger/debugger.qrc b/src/plugins/debugger/debugger.qrc index 301234efaed..36d33438620 100644 --- a/src/plugins/debugger/debugger.qrc +++ b/src/plugins/debugger/debugger.qrc @@ -48,6 +48,5 @@ images/recordfill@2x.png images/recordoutline.png images/recordoutline@2x.png - Debugger.mimetypes.xml diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index b042c8feb82..c629b2d844d 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -117,7 +117,6 @@ #include #include #include -#include #include #include #include @@ -1275,8 +1274,6 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, QString *errorMessage) { Q_UNUSED(errorMessage); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/debugger/Debugger.mimetypes.xml")); - m_arguments = arguments; if (!m_arguments.isEmpty()) connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::finishedInitialization, diff --git a/src/plugins/genericprojectmanager/GenericProjectManager.json.in b/src/plugins/genericprojectmanager/GenericProjectManager.json.in index 2ce9d7fb061..cc9ce119d4b 100644 --- a/src/plugins/genericprojectmanager/GenericProjectManager.json.in +++ b/src/plugins/genericprojectmanager/GenericProjectManager.json.in @@ -15,5 +15,36 @@ \"Category\" : \"Build Systems\", \"Description\" : \"Generic support.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + + Generic Qt Creator Project file + + + + + + Generic Project Files + + + + + + Generic Project Include Paths + + + + + + Generic Project Configuration File + + + + + \" } diff --git a/src/plugins/genericprojectmanager/GenericProjectManager.mimetypes.xml b/src/plugins/genericprojectmanager/GenericProjectManager.mimetypes.xml deleted file mode 100644 index 76e0449a70e..00000000000 --- a/src/plugins/genericprojectmanager/GenericProjectManager.mimetypes.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - Generic Qt Creator Project file - - - - - - Generic Project Files - - - - - - Generic Project Include Paths - - - - - - Generic Project Configuration File - - - - diff --git a/src/plugins/genericprojectmanager/genericproject.qrc b/src/plugins/genericprojectmanager/genericproject.qrc deleted file mode 100644 index cd74fb94a2c..00000000000 --- a/src/plugins/genericprojectmanager/genericproject.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - GenericProjectManager.mimetypes.xml - - diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.pro b/src/plugins/genericprojectmanager/genericprojectmanager.pro index c0da34edc92..1d325cef326 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.pro +++ b/src/plugins/genericprojectmanager/genericprojectmanager.pro @@ -19,7 +19,6 @@ SOURCES = genericproject.cpp \ genericmakestep.cpp \ genericbuildconfiguration.cpp \ filesselectionwizardpage.cpp -RESOURCES += genericproject.qrc FORMS += genericmakestep.ui equals(TEST, 1) { diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.qbs b/src/plugins/genericprojectmanager/genericprojectmanager.qbs index fa734abd227..1027e04f89e 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.qbs +++ b/src/plugins/genericprojectmanager/genericprojectmanager.qbs @@ -27,7 +27,6 @@ QtcPlugin { "genericmakestep.ui", "genericproject.cpp", "genericproject.h", - "genericproject.qrc", "genericprojectconstants.h", "genericprojectfileseditor.cpp", "genericprojectfileseditor.h", diff --git a/src/plugins/genericprojectmanager/genericprojectplugin.cpp b/src/plugins/genericprojectmanager/genericprojectplugin.cpp index c0fc8df74a9..14800f64e63 100644 --- a/src/plugins/genericprojectmanager/genericprojectplugin.cpp +++ b/src/plugins/genericprojectmanager/genericprojectplugin.cpp @@ -44,7 +44,6 @@ #include #include -#include #include #include @@ -58,7 +57,6 @@ namespace Internal { bool GenericProjectPlugin::initialize(const QStringList &, QString *errorMessage) { Q_UNUSED(errorMessage) - Utils::MimeDatabase::addMimeTypes(":genericproject/GenericProjectManager.mimetypes.xml"); addAutoReleasedObject(new Manager); addAutoReleasedObject(new ProjectFilesFactory); diff --git a/src/plugins/git/Git.json.in b/src/plugins/git/Git.json.in index da84fef5abc..c2680577baf 100644 --- a/src/plugins/git/Git.json.in +++ b/src/plugins/git/Git.json.in @@ -15,5 +15,22 @@ \"Category\" : \"Version Control\", \"Description\" : \"Git integration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Git Commit File + + + + + + Git Commit File + + + + \" } diff --git a/src/plugins/git/Git.mimetypes.xml b/src/plugins/git/Git.mimetypes.xml deleted file mode 100644 index ae51ec2e9bb..00000000000 --- a/src/plugins/git/Git.mimetypes.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Git Commit File - - - - - - Git Commit File - - - diff --git a/src/plugins/git/git.qrc b/src/plugins/git/git.qrc index f7c801436ad..8e8d9a2de85 100644 --- a/src/plugins/git/git.qrc +++ b/src/plugins/git/git.qrc @@ -1,6 +1,5 @@ images/arrowup.png - Git.mimetypes.xml diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index c542fddf6a0..093028c7402 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -59,7 +59,6 @@ #include #include -#include #include #include #include @@ -99,7 +98,6 @@ namespace Git { namespace Internal { const unsigned minimumRequiredVersion = 0x010800; -const char RC_GIT_MIME_XML[] = ":/git/Git.mimetypes.xml"; const VcsBaseEditorParameters editorParameters[] = { { @@ -642,8 +640,6 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage) connect(VcsManager::instance(), &VcsManager::repositoryChanged, this, &GitPlugin::updateBranches, Qt::QueuedConnection); - Utils::MimeDatabase::addMimeTypes(RC_GIT_MIME_XML); - /* "Gerrit" */ m_gerritPlugin = new Gerrit::Internal::GerritPlugin(this); const bool ok = m_gerritPlugin->initialize(remoteRepositoryMenu); diff --git a/src/plugins/glsleditor/GLSLEditor.json.in b/src/plugins/glsleditor/GLSLEditor.json.in index 3e5ff3831c7..915ae7ae029 100644 --- a/src/plugins/glsleditor/GLSLEditor.json.in +++ b/src/plugins/glsleditor/GLSLEditor.json.in @@ -15,5 +15,50 @@ \"Category\" : \"Other Languages\", \"Description\" : \"Editor for GLSL.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + + + GLSL Shader file + + + + + + + GLSL Fragment Shader file + + + + + + GLSL/ES Fragment Shader file + + + + + + GLSL Vertex Shader file + + + + + + GLSL/ES Vertex Shader file + + + + + + GLSL/ES Geometry Shader file + + + + + \" } diff --git a/src/plugins/glsleditor/GLSLEditor.mimetypes.xml b/src/plugins/glsleditor/GLSLEditor.mimetypes.xml deleted file mode 100644 index 8f4570980a4..00000000000 --- a/src/plugins/glsleditor/GLSLEditor.mimetypes.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - GLSL Shader file - - - - - - - GLSL Fragment Shader file - - - - - - GLSL/ES Fragment Shader file - - - - - - GLSL Vertex Shader file - - - - - - GLSL/ES Vertex Shader file - - - - - - GLSL/ES Geometry Shader file - - - - diff --git a/src/plugins/glsleditor/glsleditor.qrc b/src/plugins/glsleditor/glsleditor.qrc index cb1c737c9a1..88d7aea098b 100644 --- a/src/plugins/glsleditor/glsleditor.qrc +++ b/src/plugins/glsleditor/glsleditor.qrc @@ -1,6 +1,5 @@ - GLSLEditor.mimetypes.xml images/glslfile.png diff --git a/src/plugins/glsleditor/glsleditorplugin.cpp b/src/plugins/glsleditor/glsleditorplugin.cpp index 78455da651a..945e94f03b9 100644 --- a/src/plugins/glsleditor/glsleditorplugin.cpp +++ b/src/plugins/glsleditor/glsleditorplugin.cpp @@ -46,7 +46,6 @@ #include -#include #include #include @@ -117,8 +116,6 @@ GlslEditorPlugin::~GlslEditorPlugin() bool GlslEditorPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) { - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/glsleditor/GLSLEditor.mimetypes.xml")); - addAutoReleasedObject(new GlslEditorFactory); addAutoReleasedObject(new GlslCompletionAssistProvider); diff --git a/src/plugins/imageviewer/ImageViewer.json.in b/src/plugins/imageviewer/ImageViewer.json.in index 670f864af9a..685dff9a9f1 100644 --- a/src/plugins/imageviewer/ImageViewer.json.in +++ b/src/plugins/imageviewer/ImageViewer.json.in @@ -15,5 +15,17 @@ \"Category\" : \"Qt Creator\", \"Description\" : \"Image Viewer component.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + WebP Image file + + + + + \" } diff --git a/src/plugins/imageviewer/ImageViewer.mimetypes.xml b/src/plugins/imageviewer/ImageViewer.mimetypes.xml deleted file mode 100644 index 499b38acb49..00000000000 --- a/src/plugins/imageviewer/ImageViewer.mimetypes.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - WebP Image file - - - - diff --git a/src/plugins/imageviewer/imageviewer.pro b/src/plugins/imageviewer/imageviewer.pro index 651fda1fb6a..a3d81825884 100644 --- a/src/plugins/imageviewer/imageviewer.pro +++ b/src/plugins/imageviewer/imageviewer.pro @@ -17,9 +17,6 @@ SOURCES += \ imageviewer.cpp \ imageview.cpp -RESOURCES += \ - imageviewer.qrc - !isEmpty(QT.svg.name): QT += svg else: DEFINES += QT_NO_SVG diff --git a/src/plugins/imageviewer/imageviewer.qbs b/src/plugins/imageviewer/imageviewer.qbs index 4492e6fab3b..4ec44fcbe07 100644 --- a/src/plugins/imageviewer/imageviewer.qbs +++ b/src/plugins/imageviewer/imageviewer.qbs @@ -21,7 +21,6 @@ QtcPlugin { "imageview.h", "imageviewer.cpp", "imageviewer.h", - "imageviewer.qrc", "imageviewerconstants.h", "imageviewerfactory.cpp", "imageviewerfactory.h", diff --git a/src/plugins/imageviewer/imageviewer.qrc b/src/plugins/imageviewer/imageviewer.qrc deleted file mode 100644 index c62bf29a21e..00000000000 --- a/src/plugins/imageviewer/imageviewer.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - ImageViewer.mimetypes.xml - - diff --git a/src/plugins/imageviewer/imageviewerplugin.cpp b/src/plugins/imageviewer/imageviewerplugin.cpp index 2193c5c43c6..6d1419da44a 100644 --- a/src/plugins/imageviewer/imageviewerplugin.cpp +++ b/src/plugins/imageviewer/imageviewerplugin.cpp @@ -39,7 +39,6 @@ #include #include #include -#include namespace ImageViewer { namespace Internal { @@ -51,8 +50,6 @@ bool ImageViewerPlugin::initialize(const QStringList &arguments, QString *errorM Q_UNUSED(arguments) Q_UNUSED(errorMessage) - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/imageviewer/ImageViewer.mimetypes.xml")); - m_factory = new ImageViewerFactory(this); addAutoReleasedObject(m_factory); return true; diff --git a/src/plugins/modeleditor/ModelEditor.json.in b/src/plugins/modeleditor/ModelEditor.json.in index cd321d656d0..44558589be4 100644 --- a/src/plugins/modeleditor/ModelEditor.json.in +++ b/src/plugins/modeleditor/ModelEditor.json.in @@ -16,5 +16,16 @@ \"Description\" : \"Graphical modeling with structured diagrams.\", \"Url\" : \"http://www.qt.io\", \"Experimental\" : true, - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Qt Creator Model File + + + + \" } diff --git a/src/plugins/modeleditor/modeleditor_plugin.cpp b/src/plugins/modeleditor/modeleditor_plugin.cpp index 08b3b258b76..756809f9078 100644 --- a/src/plugins/modeleditor/modeleditor_plugin.cpp +++ b/src/plugins/modeleditor/modeleditor_plugin.cpp @@ -43,8 +43,6 @@ #include #include -#include - #include #include #include @@ -89,8 +87,6 @@ bool ModelEditorPlugin::initialize(const QStringList &arguments, QString *errorS Q_UNUSED(arguments); Q_UNUSED(errorString); - Utils::MimeDatabase::addMimeTypes(QStringLiteral(":/modeleditor/modeleditor.mimetypes.xml")); - d->modelsManager = new ModelsManager(this); addAutoReleasedObject(d->modelsManager); diff --git a/src/plugins/modeleditor/resources/modeleditor.mimetypes.xml b/src/plugins/modeleditor/resources/modeleditor.mimetypes.xml deleted file mode 100644 index 45119429353..00000000000 --- a/src/plugins/modeleditor/resources/modeleditor.mimetypes.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Qt Creator Model File - - - diff --git a/src/plugins/modeleditor/resources/modeleditor.qrc b/src/plugins/modeleditor/resources/modeleditor.qrc index 702cd29b688..8306ab72923 100644 --- a/src/plugins/modeleditor/resources/modeleditor.qrc +++ b/src/plugins/modeleditor/resources/modeleditor.qrc @@ -1,6 +1,5 @@ - modeleditor.mimetypes.xml up.png diff --git a/src/plugins/nim/Nim.json.in b/src/plugins/nim/Nim.json.in index f31068b821d..3fc6a651350 100644 --- a/src/plugins/nim/Nim.json.in +++ b/src/plugins/nim/Nim.json.in @@ -16,5 +16,29 @@ \"Description\" : \"Plugin for supporting the Nim programming language.\", \"Url\" : \"http://www.qt.io\", \"Experimental\" : true, - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + + Nim project file + + + + + + Nim source file + + + + + + Nim script file + + + + \" } diff --git a/src/plugins/nim/Nim.mimetypes.xml b/src/plugins/nim/Nim.mimetypes.xml deleted file mode 100644 index f7e94aa3dd4..00000000000 --- a/src/plugins/nim/Nim.mimetypes.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Nim project file - - - - - - Nim source file - - - - - - Nim script file - - - diff --git a/src/plugins/nim/nim.qrc b/src/plugins/nim/nim.qrc index ca4e8e460cc..2b845590ba2 100644 --- a/src/plugins/nim/nim.qrc +++ b/src/plugins/nim/nim.qrc @@ -1,6 +1,5 @@ - Nim.mimetypes.xml images/nim.png diff --git a/src/plugins/nim/nimplugin.cpp b/src/plugins/nim/nimplugin.cpp index 48434777eb0..4017f5e9502 100644 --- a/src/plugins/nim/nimplugin.cpp +++ b/src/plugins/nim/nimplugin.cpp @@ -42,7 +42,6 @@ #include #include -#include #include @@ -69,8 +68,6 @@ bool NimPlugin::initialize(const QStringList &arguments, QString *errorMessage) ProjectExplorer::ToolChainManager::registerLanguage(Constants::C_NIMLANGUAGE_ID, Constants::C_NIMLANGUAGE_NAME); - MimeDatabase::addMimeTypes(QLatin1String(":/Nim.mimetypes.xml")); - addAutoReleasedObject(new NimSettings); addAutoReleasedObject(new NimSnippetProvider); addAutoReleasedObject(new NimEditorFactory); diff --git a/src/plugins/perforce/Perforce.json.in b/src/plugins/perforce/Perforce.json.in index 33d213319a4..7d408c00e4d 100644 --- a/src/plugins/perforce/Perforce.json.in +++ b/src/plugins/perforce/Perforce.json.in @@ -15,5 +15,18 @@ \"Category\" : \"Version Control\", \"Description\" : \"Perforce integration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + Perforce submit template + + + + + + + \" } diff --git a/src/plugins/perforce/Perforce.mimetypes.xml b/src/plugins/perforce/Perforce.mimetypes.xml deleted file mode 100644 index d65e3d017f4..00000000000 --- a/src/plugins/perforce/Perforce.mimetypes.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - Perforce submit template - - - - - - diff --git a/src/plugins/perforce/perforce.pro b/src/plugins/perforce/perforce.pro index 9f7b07f58bd..ff50724b5f4 100644 --- a/src/plugins/perforce/perforce.pro +++ b/src/plugins/perforce/perforce.pro @@ -29,5 +29,3 @@ FORMS += settingspage.ui \ changenumberdialog.ui \ pendingchangesdialog.ui \ submitpanel.ui - -RESOURCES += perforce.qrc diff --git a/src/plugins/perforce/perforce.qbs b/src/plugins/perforce/perforce.qbs index 26ca73698d8..41bd8008cc6 100644 --- a/src/plugins/perforce/perforce.qbs +++ b/src/plugins/perforce/perforce.qbs @@ -19,7 +19,6 @@ QtcPlugin { "pendingchangesdialog.cpp", "pendingchangesdialog.h", "pendingchangesdialog.ui", - "perforce.qrc", "perforcechecker.cpp", "perforcechecker.h", "perforceeditor.cpp", diff --git a/src/plugins/perforce/perforce.qrc b/src/plugins/perforce/perforce.qrc deleted file mode 100644 index 3605faa03b2..00000000000 --- a/src/plugins/perforce/perforce.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - Perforce.mimetypes.xml - - diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index e06c491eecb..ab85764b851 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -45,7 +45,6 @@ #include #include #include -#include #include #include #include @@ -186,8 +185,6 @@ bool PerforcePlugin::initialize(const QStringList & /* arguments */, QString *er initializeVcs(new PerforceVersionControl(this), context); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.perforce/Perforce.mimetypes.xml")); - m_instance = this; m_settings.fromSettings(ICore::settings()); diff --git a/src/plugins/pythoneditor/PythonEditor.json.in b/src/plugins/pythoneditor/PythonEditor.json.in index fbdcb01bcc4..5f3709887d9 100644 --- a/src/plugins/pythoneditor/PythonEditor.json.in +++ b/src/plugins/pythoneditor/PythonEditor.json.in @@ -15,5 +15,21 @@ \"Category\" : \"Other Languages\", \"Description\" : \"Editor and file creation wizards for Python. Example plugin for QtCreator API demonstration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Python source file without console + + + + + Qt Creator Python project file + + + + \" } diff --git a/src/plugins/pythoneditor/PythonEditor.mimetypes.xml b/src/plugins/pythoneditor/PythonEditor.mimetypes.xml deleted file mode 100644 index 37c97baf11a..00000000000 --- a/src/plugins/pythoneditor/PythonEditor.mimetypes.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Python source file without console - - - - - Qt Creator Python project file - - - diff --git a/src/plugins/pythoneditor/pythoneditor.pro b/src/plugins/pythoneditor/pythoneditor.pro index 8a9ad3188c7..ba8fee64648 100644 --- a/src/plugins/pythoneditor/pythoneditor.pro +++ b/src/plugins/pythoneditor/pythoneditor.pro @@ -3,9 +3,6 @@ include(../../qtcreatorplugin.pri) DEFINES += \ PYTHONEDITOR_LIBRARY -RESOURCES += \ - pythoneditorplugin.qrc - HEADERS += \ pythoneditorplugin.h \ pythoneditor.h \ diff --git a/src/plugins/pythoneditor/pythoneditor.qbs b/src/plugins/pythoneditor/pythoneditor.qbs index 45d9c7d12bc..e6b36ae262c 100644 --- a/src/plugins/pythoneditor/pythoneditor.qbs +++ b/src/plugins/pythoneditor/pythoneditor.qbs @@ -17,7 +17,6 @@ QtcPlugin { "pythoneditor.cpp", "pythoneditor.h", "pythoneditorconstants.h", "pythoneditorplugin.cpp", "pythoneditorplugin.h", - "pythoneditorplugin.qrc", "pythonhighlighter.h", "pythonhighlighter.cpp", "pythonindenter.cpp", "pythonindenter.h", "pythonformattoken.h", diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp index 1036722b5ec..70b845eeb13 100644 --- a/src/plugins/pythoneditor/pythoneditorplugin.cpp +++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp @@ -52,7 +52,6 @@ #include #include -#include #include #include #include @@ -885,8 +884,6 @@ bool PythonEditorPlugin::initialize(const QStringList &arguments, QString *error Q_UNUSED(arguments) Q_UNUSED(errorMessage) - MimeDatabase::addMimeTypes(":/pythoneditor/PythonEditor.mimetypes.xml"); - addAutoReleasedObject(new PythonProjectManager); addAutoReleasedObject(new PythonEditorFactory); addAutoReleasedObject(new PythonRunConfigurationFactory); diff --git a/src/plugins/pythoneditor/pythoneditorplugin.qrc b/src/plugins/pythoneditor/pythoneditorplugin.qrc deleted file mode 100644 index 54222f801f8..00000000000 --- a/src/plugins/pythoneditor/pythoneditorplugin.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - PythonEditor.mimetypes.xml - - diff --git a/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in b/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in index 2812d5be31c..ae3d11d8c0e 100644 --- a/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in +++ b/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in @@ -15,5 +15,41 @@ \"Category\" : \"Build Systems\", \"Description\" : \"Provides project type for Qt/QMake .pro files and tools.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Qt Project file + + + + + Qt Project include file + + + + + Qt Project feature file + + + + + Qt Project configuration file + + + + + Qt Project cache file + + + + + Qt Project stash file + + + + \" } diff --git a/src/plugins/qmakeprojectmanager/QmakeProjectManager.mimetypes.xml b/src/plugins/qmakeprojectmanager/QmakeProjectManager.mimetypes.xml deleted file mode 100644 index 1967bc05804..00000000000 --- a/src/plugins/qmakeprojectmanager/QmakeProjectManager.mimetypes.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - Qt Project file - - - - - Qt Project include file - - - - - Qt Project feature file - - - - - Qt Project configuration file - - - - - Qt Project cache file - - - - - Qt Project stash file - - - diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qrc b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qrc index 11ce77ba611..8e13ebeeb5d 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qrc +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qrc @@ -1,6 +1,5 @@ - QmakeProjectManager.mimetypes.xml images/dark_headers.png images/dark_sources.png images/dark_unknown.png diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp index d25b57b2055..8dce028a93b 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp @@ -58,7 +58,6 @@ #include #include #include -#include #include #ifdef WITH_TESTS @@ -83,8 +82,6 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString const Context projectContext(QmakeProjectManager::Constants::PROJECT_ID); Context projecTreeContext(ProjectExplorer::Constants::C_PROJECT_TREE); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":qmakeprojectmanager/QmakeProjectManager.mimetypes.xml")); - //create and register objects m_qmakeProjectManager = new QmakeManager; addAutoReleasedObject(m_qmakeProjectManager); diff --git a/src/plugins/qmljstools/QmlJSTools.json.in b/src/plugins/qmljstools/QmlJSTools.json.in index 3e04c20116c..1d50eae3c48 100644 --- a/src/plugins/qmljstools/QmlJSTools.json.in +++ b/src/plugins/qmljstools/QmlJSTools.json.in @@ -16,5 +16,47 @@ \"Category\" : \"Qt Quick\", \"Description\" : \"Tools for analyzing Qml/JS code.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + + + QML file + + + + + + Qt Build Suite file + + + + + + QtQuick Designer ui file + + + + + + Qt Creator Qt UI project file + + + + + + QML file + + + + + JSON file + + + + \" } diff --git a/src/plugins/qmljstools/QmlJSTools.mimetypes.xml b/src/plugins/qmljstools/QmlJSTools.mimetypes.xml deleted file mode 100644 index f63c4f3d0ca..00000000000 --- a/src/plugins/qmljstools/QmlJSTools.mimetypes.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - QML file - - - - - - Qt Build Suite file - - - - - - QtQuick Designer ui file - - - - - - Qt Creator Qt UI project file - - - - - - QML file - - - - - JSON file - - - diff --git a/src/plugins/qmljstools/qmljstools.qrc b/src/plugins/qmljstools/qmljstools.qrc index a7f44837497..3c9877514d0 100644 --- a/src/plugins/qmljstools/qmljstools.qrc +++ b/src/plugins/qmljstools/qmljstools.qrc @@ -2,6 +2,5 @@ images/category_qml.png images/prompt.png - QmlJSTools.mimetypes.xml diff --git a/src/plugins/qmljstools/qmljstoolsplugin.cpp b/src/plugins/qmljstools/qmljstoolsplugin.cpp index 356ea6252e8..74b64ed6e51 100644 --- a/src/plugins/qmljstools/qmljstoolsplugin.cpp +++ b/src/plugins/qmljstools/qmljstoolsplugin.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -68,8 +67,6 @@ bool QmlJSToolsPlugin::initialize(const QStringList &arguments, QString *error) Q_UNUSED(arguments) Q_UNUSED(error) - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/qmljstools/QmlJSTools.mimetypes.xml")); - m_settings = new QmlJSToolsSettings(this); // force registration of qmljstools settings // Objects diff --git a/src/plugins/qmlprojectmanager/QmlProjectManager.json.in b/src/plugins/qmlprojectmanager/QmlProjectManager.json.in index 3c8112e3184..fcd607a2287 100644 --- a/src/plugins/qmlprojectmanager/QmlProjectManager.json.in +++ b/src/plugins/qmlprojectmanager/QmlProjectManager.json.in @@ -15,5 +15,17 @@ \"Category\" : \"Qt Quick\", \"Description\" : \"Qt Quick support\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + + QML Project file + + + + \" } diff --git a/src/plugins/qmlprojectmanager/QmlProjectManager.mimetypes.xml b/src/plugins/qmlprojectmanager/QmlProjectManager.mimetypes.xml deleted file mode 100644 index 812d1cb8797..00000000000 --- a/src/plugins/qmlprojectmanager/QmlProjectManager.mimetypes.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - QML Project file - - - diff --git a/src/plugins/qmlprojectmanager/qmlproject.qrc b/src/plugins/qmlprojectmanager/qmlproject.qrc index 31d6ba9b6df..c35d2ba716c 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.qrc +++ b/src/plugins/qmlprojectmanager/qmlproject.qrc @@ -1,6 +1,5 @@ - QmlProjectManager.mimetypes.xml images/qmlfolder.png images/qmlproject.png diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp index 6c2be55d01d..7ce0b2c9ed8 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp @@ -34,8 +34,6 @@ #include -#include - #include #include @@ -54,7 +52,6 @@ QmlProjectPlugin::~QmlProjectPlugin() bool QmlProjectPlugin::initialize(const QStringList &, QString *errorMessage) { Q_UNUSED(errorMessage) - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/qmlproject/QmlProjectManager.mimetypes.xml")); addAutoReleasedObject(new Internal::Manager); addAutoReleasedObject(new Internal::QmlProjectRunConfigurationFactory); diff --git a/src/plugins/qtsupport/QtSupport.json.in b/src/plugins/qtsupport/QtSupport.json.in index 928aee265cc..b62bb1b29d5 100644 --- a/src/plugins/qtsupport/QtSupport.json.in +++ b/src/plugins/qtsupport/QtSupport.json.in @@ -16,5 +16,27 @@ \"Category\" : \"Build Systems\", \"Description\" : \"Provides support code for build systems.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + Linguist compiled translations + + + + Linguist source translations + + + + + + + SCXML State Chart + + + + + \" } diff --git a/src/plugins/qtsupport/QtSupport.mimetypes.xml b/src/plugins/qtsupport/QtSupport.mimetypes.xml deleted file mode 100644 index 4e85be98ba9..00000000000 --- a/src/plugins/qtsupport/QtSupport.mimetypes.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Linguist compiled translations - - - - Linguist source translations - - - - - - - SCXML State Chart - - - - diff --git a/src/plugins/qtsupport/qtsupport.qrc b/src/plugins/qtsupport/qtsupport.qrc index b5aacef1ec5..c4233469951 100644 --- a/src/plugins/qtsupport/qtsupport.qrc +++ b/src/plugins/qtsupport/qtsupport.qrc @@ -4,7 +4,6 @@ images/dark_qml.png images/dark_qt_project.png images/dark_qt_qrc.png - QtSupport.mimetypes.xml images_areaofinterest.xml qtcreator_tutorials.xml images/icons/androidapp.png diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index 92e19f1bede..95684d0c7cd 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -46,7 +46,6 @@ #include #include -#include #include @@ -65,8 +64,6 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes ProFileEvaluator::initialize(); new ProFileCacheManager(this); - Utils::MimeDatabase::addMimeTypes(QLatin1String(":qtsupport/QtSupport.mimetypes.xml")); - JsExpander::registerQObjectForJs(QLatin1String("QtSupport"), new CodeGenerator); addAutoReleasedObject(new QtVersionManager); diff --git a/src/plugins/resourceeditor/ResourceEditor.json.in b/src/plugins/resourceeditor/ResourceEditor.json.in index a870b79b8a9..6bf2776a0c1 100644 --- a/src/plugins/resourceeditor/ResourceEditor.json.in +++ b/src/plugins/resourceeditor/ResourceEditor.json.in @@ -15,5 +15,16 @@ \"Category\" : \"Qt Creator\", \"Description\" : \"Editor for qrc files.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Qt Resource file + + + + \" } diff --git a/src/plugins/resourceeditor/ResourceEditor.mimetypes.xml b/src/plugins/resourceeditor/ResourceEditor.mimetypes.xml deleted file mode 100644 index d22052251d0..00000000000 --- a/src/plugins/resourceeditor/ResourceEditor.mimetypes.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Qt Resource file - - - diff --git a/src/plugins/resourceeditor/resourceeditor.pro b/src/plugins/resourceeditor/resourceeditor.pro index 4a948ac274c..d16f7288470 100644 --- a/src/plugins/resourceeditor/resourceeditor.pro +++ b/src/plugins/resourceeditor/resourceeditor.pro @@ -13,6 +13,4 @@ resourceeditorplugin.cpp \ resourceeditorw.cpp \ resourcenode.cpp -RESOURCES += resourceeditor.qrc - DEFINES += RESOURCE_LIBRARY diff --git a/src/plugins/resourceeditor/resourceeditor.qbs b/src/plugins/resourceeditor/resourceeditor.qbs index cce38761062..e1a37545e7e 100644 --- a/src/plugins/resourceeditor/resourceeditor.qbs +++ b/src/plugins/resourceeditor/resourceeditor.qbs @@ -18,7 +18,6 @@ Project { Group { name: "General" files: [ - "resourceeditor.qrc", "resourceeditorconstants.h", "resourceeditorfactory.cpp", "resourceeditorfactory.h", "resourceeditorplugin.cpp", "resourceeditorplugin.h", diff --git a/src/plugins/resourceeditor/resourceeditor.qrc b/src/plugins/resourceeditor/resourceeditor.qrc deleted file mode 100644 index 9d6b792e035..00000000000 --- a/src/plugins/resourceeditor/resourceeditor.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - ResourceEditor.mimetypes.xml - - diff --git a/src/plugins/resourceeditor/resourceeditorplugin.cpp b/src/plugins/resourceeditor/resourceeditorplugin.cpp index 5dc8f83c54a..21060c6ae71 100644 --- a/src/plugins/resourceeditor/resourceeditorplugin.cpp +++ b/src/plugins/resourceeditor/resourceeditorplugin.cpp @@ -44,7 +44,6 @@ #include #include -#include #include #include @@ -121,7 +120,6 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err { Q_UNUSED(arguments) Q_UNUSED(errorMessage) - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/resourceeditor/ResourceEditor.mimetypes.xml")); ResourceEditorFactory *editor = new ResourceEditorFactory(this); addAutoReleasedObject(editor); diff --git a/src/plugins/scxmleditor/ScxmlEditor.json.in b/src/plugins/scxmleditor/ScxmlEditor.json.in index b9c965354b3..1e48677f5fb 100644 --- a/src/plugins/scxmleditor/ScxmlEditor.json.in +++ b/src/plugins/scxmleditor/ScxmlEditor.json.in @@ -16,5 +16,16 @@ \"Description\" : \"Visual Editor for SCXML (State Chart XML) files.\", \"Url\" : \"http://www.qt.io\", \"Experimental\" : true, - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + SCXML file + + + + \" } diff --git a/src/plugins/scxmleditor/ScxmlEditor.mimetypes.xml b/src/plugins/scxmleditor/ScxmlEditor.mimetypes.xml deleted file mode 100644 index 491f364f894..00000000000 --- a/src/plugins/scxmleditor/ScxmlEditor.mimetypes.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - SCXML file - - - diff --git a/src/plugins/scxmleditor/resources.qrc b/src/plugins/scxmleditor/resources.qrc deleted file mode 100644 index 0a8382e3fe9..00000000000 --- a/src/plugins/scxmleditor/resources.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - ScxmlEditor.mimetypes.xml - - diff --git a/src/plugins/scxmleditor/scxmleditor.pro b/src/plugins/scxmleditor/scxmleditor.pro index 4de417ae7eb..eb1788957e9 100644 --- a/src/plugins/scxmleditor/scxmleditor.pro +++ b/src/plugins/scxmleditor/scxmleditor.pro @@ -22,9 +22,6 @@ SOURCES += \ scxmleditorstack.cpp \ scxmltexteditor.cpp -RESOURCES += \ - resources.qrc - include(plugin_interface/plugin_interface.pri) include(common/common.pri) include(outputpane/outputpane.pri) diff --git a/src/plugins/scxmleditor/scxmleditor.qbs b/src/plugins/scxmleditor/scxmleditor.qbs index 8b98b35556b..2d32ed390c7 100644 --- a/src/plugins/scxmleditor/scxmleditor.qbs +++ b/src/plugins/scxmleditor/scxmleditor.qbs @@ -30,8 +30,6 @@ QtcPlugin { "scxmleditorplugin.cpp", "scxmleditorplugin.h", "scxmleditorstack.cpp", "scxmleditorstack.h", "scxmltexteditor.cpp", "scxmltexteditor.h", - - "resources.qrc", ] Group { diff --git a/src/plugins/scxmleditor/scxmleditorplugin.cpp b/src/plugins/scxmleditor/scxmleditorplugin.cpp index 8a7a487b5ef..df5f355ff8b 100644 --- a/src/plugins/scxmleditor/scxmleditorplugin.cpp +++ b/src/plugins/scxmleditor/scxmleditorplugin.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include @@ -52,7 +51,6 @@ bool ScxmlEditorPlugin::initialize(const QStringList &arguments, QString *errorS Q_UNUSED(arguments) Q_UNUSED(errorString) - Utils::MimeDatabase::addMimeTypes(":/scxmleditor/ScxmlEditor.mimetypes.xml"); addAutoReleasedObject(new ScxmlEditorFactory); return true; diff --git a/src/plugins/subversion/Subversion.json.in b/src/plugins/subversion/Subversion.json.in index 55db2399ebd..a31c9dd38b8 100644 --- a/src/plugins/subversion/Subversion.json.in +++ b/src/plugins/subversion/Subversion.json.in @@ -15,5 +15,15 @@ \"Category\" : \"Version Control\", \"Description\" : \"Subversion integration.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + Subversion submit template + + + + \" } diff --git a/src/plugins/subversion/Subversion.mimetypes.xml b/src/plugins/subversion/Subversion.mimetypes.xml deleted file mode 100644 index a3372413642..00000000000 --- a/src/plugins/subversion/Subversion.mimetypes.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Subversion submit template - - - diff --git a/src/plugins/subversion/subversion.pro b/src/plugins/subversion/subversion.pro index ebf878474ba..90b0481532a 100644 --- a/src/plugins/subversion/subversion.pro +++ b/src/plugins/subversion/subversion.pro @@ -20,5 +20,3 @@ SOURCES += annotationhighlighter.cpp \ subversionsettings.cpp FORMS += settingspage.ui - -RESOURCES += subversion.qrc diff --git a/src/plugins/subversion/subversion.qbs b/src/plugins/subversion/subversion.qbs index 1a6244a946b..cd1b03f440f 100644 --- a/src/plugins/subversion/subversion.qbs +++ b/src/plugins/subversion/subversion.qbs @@ -17,7 +17,6 @@ QtcPlugin { "settingspage.cpp", "settingspage.h", "settingspage.ui", - "subversion.qrc", "subversionclient.cpp", "subversionclient.h", "subversionconstants.h", diff --git a/src/plugins/subversion/subversion.qrc b/src/plugins/subversion/subversion.qrc deleted file mode 100644 index b23e6dbb973..00000000000 --- a/src/plugins/subversion/subversion.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - Subversion.mimetypes.xml - - diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 6346fa0e8a4..aaf43d91953 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -56,7 +56,6 @@ #include #include #include -#include #include #include #include @@ -215,8 +214,6 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments */, QString *e m_subversionPluginInstance = this; - Utils::MimeDatabase::addMimeTypes(QLatin1String(":/trolltech.subversion/Subversion.mimetypes.xml")); - m_client = new SubversionClient; addAutoReleasedObject(new SettingsPage(versionControl())); diff --git a/src/plugins/tasklist/TaskList.json.in b/src/plugins/tasklist/TaskList.json.in index a33e7eba2f0..202bf41b2a7 100644 --- a/src/plugins/tasklist/TaskList.json.in +++ b/src/plugins/tasklist/TaskList.json.in @@ -14,5 +14,17 @@ ], \"Description\" : \"Use .tasks-files to populate the Issues view.\", \"Url\" : \"http://www.qt.io\", - $$dependencyList + $$dependencyList, + + \"Mimetypes\" : \" + + + + + Qt Creator task list file + + + + + \" } diff --git a/src/plugins/tasklist/TaskList.mimetypes.xml b/src/plugins/tasklist/TaskList.mimetypes.xml deleted file mode 100644 index 12384169f12..00000000000 --- a/src/plugins/tasklist/TaskList.mimetypes.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Qt Creator task list file - - - - diff --git a/src/plugins/tasklist/tasklist.pro b/src/plugins/tasklist/tasklist.pro index e842884f664..e22292cd4fc 100644 --- a/src/plugins/tasklist/tasklist.pro +++ b/src/plugins/tasklist/tasklist.pro @@ -8,5 +8,3 @@ HEADERS += tasklistplugin.h \ SOURCES += tasklistplugin.cpp \ stopmonitoringhandler.cpp \ taskfile.cpp \ - -RESOURCES += tasklist.qrc diff --git a/src/plugins/tasklist/tasklist.qbs b/src/plugins/tasklist/tasklist.qbs index 22039d55f6a..0a84627f273 100644 --- a/src/plugins/tasklist/tasklist.qbs +++ b/src/plugins/tasklist/tasklist.qbs @@ -14,7 +14,6 @@ QtcPlugin { "stopmonitoringhandler.h", "taskfile.cpp", "taskfile.h", - "tasklist.qrc", "tasklistconstants.h", "tasklistplugin.cpp", "tasklistplugin.h", diff --git a/src/plugins/tasklist/tasklist.qrc b/src/plugins/tasklist/tasklist.qrc deleted file mode 100644 index 2acafd38a54..00000000000 --- a/src/plugins/tasklist/tasklist.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - TaskList.mimetypes.xml - - diff --git a/src/plugins/tasklist/tasklistplugin.cpp b/src/plugins/tasklist/tasklistplugin.cpp index c0349a9dd5c..d9c6f5fa66e 100644 --- a/src/plugins/tasklist/tasklistplugin.cpp +++ b/src/plugins/tasklist/tasklistplugin.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include #include @@ -194,8 +193,6 @@ bool TaskListPlugin::initialize(const QStringList &arguments, QString *errorMess //: Category under which tasklist tasks are listed in Issues view TaskHub::addCategory(Constants::TASKLISTTASK_ID, tr("My Tasks")); - MimeDatabase::addMimeTypes(QLatin1String(":tasklist/TaskList.mimetypes.xml")); - m_fileFactory = new IDocumentFactory; m_fileFactory->addMimeType(QLatin1String("text/x-tasklist")); m_fileFactory->setOpener([this](const QString &fileName) { diff --git a/src/qtcreatorplugin.pri b/src/qtcreatorplugin.pri index fc5201f8e2c..a409ec19a55 100644 --- a/src/qtcreatorplugin.pri +++ b/src/qtcreatorplugin.pri @@ -99,8 +99,5 @@ linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF target.path = $$INSTALL_PLUGIN_PATH INSTALLS += target -MIMETYPES = $$_PRO_FILE_PWD_/$${TARGET}.mimetypes.xml -exists($$MIMETYPES):DISTFILES += $$MIMETYPES - TARGET = $$qtLibraryTargetName($$TARGET) diff --git a/tests/unit/unittest/mimedatabase-utilities.cpp b/tests/unit/unittest/mimedatabase-utilities.cpp index ecc54354c7e..2d5699ce70b 100644 --- a/tests/unit/unittest/mimedatabase-utilities.cpp +++ b/tests/unit/unittest/mimedatabase-utilities.cpp @@ -25,8 +25,11 @@ #include "mimedatabase-utilities.h" +#include +#include +#include +#include #include -#include #include @@ -39,10 +42,14 @@ bool addCppToolsMimeTypes() if (alreadyAdded) return true; - const QString filePath - = TESTDATA_DIR "/../../../../src/plugins/cpptools/CppTools.mimetypes.xml"; - if (QFileInfo::exists(filePath)) { - Utils::MimeDatabase::addMimeTypes(filePath); + const QString filePath = CPPTOOLS_JSON; + QFile file(filePath); + if (file.open(QIODevice::ReadOnly)) { + auto doc = QJsonDocument::fromJson(file.readAll()); + QJsonValue mimetypes = doc.object().value("Mimetypes"); + if (!mimetypes.isString()) + return false; + Utils::MimeDatabase::addMimeTypes(filePath, mimetypes.toString().trimmed().toUtf8()); alreadyAdded = true; return true; } diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 133f762c266..db1d0ab4553 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -28,6 +28,13 @@ QMAKE_LFLAGS += -fno-merge-debug-strings -fuse-ld=gold CONFIG(release, debug|release):QMAKE_LFLAGS += -Wl,--strip-debug } +# create fake CppTools.json for the mime type definitions +dependencyList = "\"Dependencies\" : []" +cpptoolsjson.input = $$PWD/../../../src/plugins/cpptools/CppTools.json.in +cpptoolsjson.output = $$OUT_PWD/CppTools.json +QMAKE_SUBSTITUTES += cpptoolsjson +DEFINES += CPPTOOLS_JSON=\"R\\\"xxx($${cpptoolsjson.output})xxx\\\"\" + SOURCES += \ clientserverinprocess-test.cpp \ lineprefixer-test.cpp \