qmljs: Scan application directories for QML libraries

We need to search application directories as well since the new
QML Module API will generate modules there.

Task-number: QTCREATORBUG-24987
Change-Id: Ie67233ffece692c62921db13c49ae8cc2184422f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
This commit is contained in:
Maximilian Goldstein
2021-12-16 14:52:26 +01:00
parent 4ccbbc2f24
commit 9a28edfd87
2 changed files with 5 additions and 2 deletions

View File

@@ -414,7 +414,8 @@ Import LinkPrivate::importNonFile(const Document::Ptr &doc, const ImportInfo &im
const QString packageName = importInfo.name();
const ComponentVersion version = importInfo.version();
QStringList libraryPaths = modulePaths(packageName, version.toString(), m_importPaths);
QStringList libraryPaths = modulePaths(packageName, version.toString(), m_importPaths + m_applicationDirectories);
bool importFound = false;
for (const QString &libPath : libraryPaths) {
importFound = !libPath.isEmpty() && importLibrary(doc, libPath, &import, import.object);

View File

@@ -1252,8 +1252,10 @@ void ModelManagerInterface::updateImportPaths()
QSet<QString> newLibraries;
for (const Document::Ptr &doc : qAsConst(snapshot))
findNewLibraryImports(doc, snapshot, this, &importedFiles, &scannedPaths, &newLibraries);
for (const QString &path : qAsConst(allApplicationDirectories))
for (const QString &path : qAsConst(allApplicationDirectories)) {
allImportPaths.maybeInsert(FilePath::fromString(path), Dialect::Qml);
findNewQmlApplicationInPath(FilePath::fromString(path), snapshot, this, &newLibraries);
}
updateSourceFiles(importedFiles, true);