diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-02-04 09:32:46 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-02-17 13:00:07 +0000 |
commit | 5a3a940ad3b3984b308b539e7f0456ce11d4d90e (patch) | |
tree | 539ac730a9291e9630c5772d78e5de1d9d4ece1e /src/plugins/qmljstools/qmljsmodelmanager.cpp | |
parent | 365c1ddb903ebb8f183195244669499a300431d2 (diff) |
Use new mime database
Change-Id: I4305872b6b11ef3e8a364280ffa5209a5a793600
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Diffstat (limited to 'src/plugins/qmljstools/qmljsmodelmanager.cpp')
-rw-r--r-- | src/plugins/qmljstools/qmljsmodelmanager.cpp | 55 |
1 files changed, 18 insertions, 37 deletions
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index 3c37317fb11..83698a91d39 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -52,6 +52,7 @@ #include <qtsupport/qtsupportconstants.h> #include <texteditor/textdocument.h> #include <utils/hostosinfo.h> +#include <utils/mimetypes/mimedatabase.h> #include <QDir> #include <QFile> @@ -76,22 +77,18 @@ ModelManagerInterface::ProjectInfo QmlJSTools::Internal::ModelManager::defaultPr ModelManagerInterface::ProjectInfo projectInfo(project); ProjectExplorer::Target *activeTarget = 0; if (project) { - QList<MimeGlobPattern> globs; - foreach (const MimeType &mimeType, MimeDatabase::mimeTypes()) - if (mimeType.type() == QLatin1String(Constants::QML_MIMETYPE) - || mimeType.subClassesOf().contains(QLatin1String(Constants::QML_MIMETYPE))) - globs << mimeType.globPatterns(); - if (globs.isEmpty()) { - globs.append(MimeGlobPattern(QLatin1String("*.qbs"))); - globs.append(MimeGlobPattern(QLatin1String("*.qml"))); - globs.append(MimeGlobPattern(QLatin1String("*.qmltypes"))); - globs.append(MimeGlobPattern(QLatin1String("*.qmlproject"))); + Utils::MimeDatabase mdb; + QList<Utils::MimeType> qmlTypes; + foreach (const Utils::MimeType &mimeType, mdb.allMimeTypes()) { + if (mimeType.matchesName(QLatin1String(Constants::QML_MIMETYPE)) + || mimeType.allAncestors().contains(QLatin1String(Constants::QML_MIMETYPE))) + qmlTypes.append(mimeType); } foreach (const QString &filePath, - project->files(ProjectExplorer::Project::ExcludeGeneratedFiles)) - foreach (const MimeGlobPattern &glob, globs) - if (glob.matches(filePath)) - projectInfo.sourceFiles << filePath; + project->files(ProjectExplorer::Project::ExcludeGeneratedFiles)) { + if (mdb.bestMatch(filePath, qmlTypes).isValid()) + projectInfo.sourceFiles << filePath; + } activeTarget = project->activeTarget(); } ProjectExplorer::Kit *activeKit = activeTarget ? activeTarget->kit() : @@ -179,22 +176,23 @@ QHash<QString,QmlJS::Dialect> ModelManager::languageForSuffix() const QHash<QString,QmlJS::Dialect> res = ModelManagerInterface::languageForSuffix(); if (ICore::instance()) { - MimeType jsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JS_MIMETYPE)); + Utils::MimeDatabase mdb; + Utils::MimeType jsSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::JS_MIMETYPE)); foreach (const QString &suffix, jsSourceTy.suffixes()) res[suffix] = Dialect::JavaScript; - MimeType qmlSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QML_MIMETYPE)); + Utils::MimeType qmlSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::QML_MIMETYPE)); foreach (const QString &suffix, qmlSourceTy.suffixes()) res[suffix] = Dialect::Qml; - MimeType qbsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QBS_MIMETYPE)); + Utils::MimeType qbsSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::QBS_MIMETYPE)); foreach (const QString &suffix, qbsSourceTy.suffixes()) res[suffix] = Dialect::QmlQbs; - MimeType qmlProjectSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QMLPROJECT_MIMETYPE)); + Utils::MimeType qmlProjectSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::QMLPROJECT_MIMETYPE)); foreach (const QString &suffix, qmlProjectSourceTy.suffixes()) res[suffix] = Dialect::QmlProject; - MimeType qmlUiSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QMLUI_MIMETYPE)); + Utils::MimeType qmlUiSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::QMLUI_MIMETYPE)); foreach (const QString &suffix, qmlUiSourceTy.suffixes()) res[suffix] = Dialect::QmlQtQuick2Ui; - MimeType jsonSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JSON_MIMETYPE)); + Utils::MimeType jsonSourceTy = mdb.mimeTypeForName(QLatin1String(Constants::JSON_MIMETYPE)); foreach (const QString &suffix, jsonSourceTy.suffixes()) res[suffix] = Dialect::Json; } @@ -269,23 +267,6 @@ void ModelManager::updateDefaultProjectInfo() } -// Check whether fileMimeType is the same or extends knownMimeType -bool ModelManager::matchesMimeType(const MimeType &fileMimeType, const MimeType &knownMimeType) -{ - const QStringList knownTypeNames = QStringList(knownMimeType.type()) + knownMimeType.aliases(); - - foreach (const QString &knownTypeName, knownTypeNames) - if (fileMimeType.matchesType(knownTypeName)) - return true; - - // recursion to parent types of fileMimeType - foreach (const QString &parentMimeType, fileMimeType.subClassesOf()) - if (matchesMimeType(MimeDatabase::findByType(parentMimeType), knownMimeType)) - return true; - - return false; -} - void ModelManager::addTaskInternal(QFuture<void> result, const QString &msg, const char *taskId) const { ProgressManager::addTask(result, msg, taskId); |