diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp index f823aff50bf..92516dee2ee 100644 --- a/src/libs/qmljs/qmljsbind.cpp +++ b/src/libs/qmljs/qmljsbind.cpp @@ -29,6 +29,8 @@ #include "qmljsdocument.h" #include "qmljsmodelmanagerinterface.h" +#include + using namespace LanguageUtils; using namespace QmlJS; using namespace QmlJS::AST; @@ -178,6 +180,17 @@ bool Bind::visit(AST::Program *) return true; } +void Bind::endVisit(UiProgram *) +{ + if (_doc->language() == Dialect::QmlQbs) { + static const QString qbsBaseImport = QStringLiteral("qbs"); + static auto isQbsBaseImport = [] (const ImportInfo &ii) { + return ii.name() == qbsBaseImport; }; + if (!Utils::anyOf(_imports, isQbsBaseImport)) + _imports += ImportInfo::moduleImport(qbsBaseImport, ComponentVersion(), QString()); + } +} + bool Bind::visit(UiImport *ast) { ComponentVersion version; diff --git a/src/libs/qmljs/qmljsbind.h b/src/libs/qmljs/qmljsbind.h index 81da23b6fa8..e584abef7b4 100644 --- a/src/libs/qmljs/qmljsbind.h +++ b/src/libs/qmljs/qmljsbind.h @@ -66,6 +66,7 @@ protected: bool visit(AST::UiProgram *ast) override; bool visit(AST::Program *ast) override; + void endVisit(AST::UiProgram *) override; // Ui bool visit(AST::UiImport *ast) override;