From 8f27c43877fa7d7bef7f2f7f7413544435f122fd Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Tue, 23 Nov 2010 12:49:50 +0100 Subject: [PATCH] QmlJS: Don't use full mime type detection to decide between qml/js. Determining the mime type is too expensive - and for deciding between qml and js files comparing suffixes is sufficient. Reviewed-by: Friedemann Kleint --- src/plugins/qmljstools/qmljsmodelmanager.cpp | 21 +++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index 637bc564007..8408c853f7e 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -367,6 +367,15 @@ static void findNewLibraryImports(const Document::Ptr &doc, const Snapshot &snap } } +static bool suffixMatches(const QString &fileName, const Core::MimeType &mimeType) +{ + foreach (const QString &suffix, mimeType.suffixes()) { + if (fileName.endsWith(suffix, Qt::CaseInsensitive)) + return true; + } + return false; +} + void ModelManager::parse(QFutureInterface<void> &future, WorkingCopy workingCopy, QStringList files, @@ -395,19 +404,13 @@ void ModelManager::parse(QFutureInterface<void> &future, const QString fileName = files.at(i); - const QFileInfo fileInfo(fileName); - Core::MimeType fileMimeTy; - bool isQmlFile = true; - if (db) { - fileMimeTy = db->findByFile(fileInfo); - - if (matchesMimeType(fileMimeTy, jsSourceTy)) + if (suffixMatches(fileName, jsSourceTy)) { isQmlFile = false; - - else if (! matchesMimeType(fileMimeTy, qmlSourceTy)) + } else if (! suffixMatches(fileName, qmlSourceTy)) { continue; // skip it. it's not a QML or a JS file. + } } else { if (fileName.contains(QLatin1String(".js"), Qt::CaseInsensitive)) isQmlFile = false; -- GitLab