forked from qt-creator/qt-creator
QmlDesigner: Create directory imports on demand
This function is only used on demand in the item library. Task-number: QDS-15165 Change-Id: I784d15f1cf6be37885336259a434abe7dfe09b66 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
d916d077ba
commit
e37e9b6a84
@@ -1801,6 +1801,31 @@ Storage::Info::ExportedTypeName Model::exportedTypeNameForMetaInfo(const NodeMet
|
||||
|
||||
namespace {
|
||||
|
||||
QmlDesigner::Imports createPossibleFileImports(const Utils::FilePath &path)
|
||||
{
|
||||
auto folder = path.parentDir();
|
||||
QmlDesigner::Imports imports;
|
||||
|
||||
/* Creates imports for all sub folder that contain a qml file. */
|
||||
folder.iterateDirectory(
|
||||
[&](const Utils::FilePath &item) {
|
||||
bool append = false;
|
||||
|
||||
item.iterateDirectory(
|
||||
[&](const Utils::FilePath &item) {
|
||||
append = true;
|
||||
return Utils::IterationPolicy::Stop;
|
||||
},
|
||||
{{"*.qml"}, QDir::Files});
|
||||
if (append)
|
||||
imports.append(QmlDesigner::Import::createFileImport(item.fileName()));
|
||||
return Utils::IterationPolicy::Continue;
|
||||
},
|
||||
{{}, QDir::Dirs | QDir::NoDotAndDotDot});
|
||||
|
||||
return imports;
|
||||
}
|
||||
|
||||
QmlDesigner::Imports createQt6ModulesForProjectStorage()
|
||||
{
|
||||
QmlDesigner::Imports imports = {
|
||||
@@ -1854,7 +1879,10 @@ QmlDesigner::Imports createQt6ModulesForProjectStorage()
|
||||
Imports Model::possibleImports() const
|
||||
{
|
||||
#ifdef QDS_USE_PROJECTSTORAGE
|
||||
static auto imports = createQt6ModulesForProjectStorage();
|
||||
static auto qt6Imports = createQt6ModulesForProjectStorage();
|
||||
auto imports = createPossibleFileImports(Utils::FilePath::fromUrl(fileUrl()));
|
||||
imports.append(qt6Imports);
|
||||
|
||||
return imports;
|
||||
#else
|
||||
return d->m_possibleImportList;
|
||||
|
Reference in New Issue
Block a user