aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmljstools/qmljsmodelmanager.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2015-02-04 09:32:46 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2015-02-17 13:00:07 +0000
commit5a3a940ad3b3984b308b539e7f0456ce11d4d90e (patch)
tree539ac730a9291e9630c5772d78e5de1d9d4ece1e /src/plugins/qmljstools/qmljsmodelmanager.cpp
parent365c1ddb903ebb8f183195244669499a300431d2 (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.cpp55
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);