From e960062b80e0b37aaf6586d0524f95b4d5fd2d67 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 17 Mar 2021 11:32:18 +0100 Subject: QMLJS: Fix usage of default project info The defaultProjectInfo in the model manager is used as fallback for cases where no applicable ProjectInfo is found. There were a couple of places where this should have been used, but wasn't. This showed when adding a autotest that only used a defaultProjectInfo with no projects defined. Change-Id: If446212dbbdff02fbf1f220d401405d5f99d2de6 Reviewed-by: Fawzi Mohamed --- src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/libs/qmljs/qmljsmodelmanagerinterface.cpp') diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index bb4dde444e..e1189754bd 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -641,6 +641,10 @@ QList ModelManagerInterface::allProjectInfos if (!info.project.isNull()) infos.append(info); } + if (infos.isEmpty()) { + QMutexLocker locker(&m_mutex); + return { m_defaultProjectInfo }; + } std::sort(infos.begin(), infos.end(), &pInfoLessThanImports); return infos; } @@ -1200,6 +1204,10 @@ void ModelManagerInterface::updateImportPaths() allImportPaths.maybeInsert(Utils::FilePath::fromString(pathAtt), Dialect::QmlQtQuick2); } + for (const auto &importPath : defaultProjectInfo().importPaths) { + allImportPaths.maybeInsert(importPath); + } + for (const QString &path : qAsConst(m_defaultImportPaths)) allImportPaths.maybeInsert(Utils::FilePath::fromString(path), Dialect::Qml); allImportPaths.compact(); @@ -1432,6 +1440,8 @@ ViewerContext ModelManagerInterface::getVContext(const ViewerContext &vCtx, info.qtQmlPath = defaultInfo.qtQmlPath; info.qtVersionString = defaultInfo.qtVersionString; } + if (info.qtQmlPath.isEmpty() && info.importPaths.size() == 0) + info.importPaths = defaultInfo.importPaths; info.applicationDirectories = Utils::filteredUnique(info.applicationDirectories + defaultInfo.applicationDirectories); switch (res.flags) { -- cgit v1.2.1