qmljs: Fix parsing and and loading of qmldir imports

Add most changes to the qmldir parser of Qt6. This is not a direct
application of the changes because they rely on changes to QtBase that
are Q6 only.
Ignore load errors of optional dependencies.

Fixes: QTCREATORBUG-24772
Change-Id: I0b85818b602c8c7c1712e52318b4ca3f15364cc5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Fawzi Mohamed
2020-11-26 07:32:29 +01:00
parent 23501b4271
commit 5ce8cf70e8
6 changed files with 157 additions and 57 deletions

View File

@@ -158,7 +158,7 @@ private:
FakeMetaObjectList _metaObjects;
QList<ModuleApiInfo> _moduleApis;
QStringList _dependencies; // from qmltypes "dependencies: [...]"
QStringList _imports; // from qmldir "import" commands
QList<QmlDirParser::Import> _imports; // from qmldir "import" commands
QByteArray _fingerprint;
PluginTypeInfoStatus _dumpStatus = NoTypeInfo;
@@ -204,10 +204,10 @@ public:
void setDependencies(const QStringList &deps)
{ _dependencies = deps; }
QStringList imports() const
QList<QmlDirParser::Import> imports() const
{ return _imports; }
void setImports(const QStringList &imports)
void setImports(const QList<QmlDirParser::Import> &imports)
{ _imports = imports; }
bool isValid() const