From 6a605df673380ffe4e7ee24417175f58ba7972a4 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 11 Nov 2020 14:12:55 +0100 Subject: QmlCompiler: Allow more convenient access to enums in QQmlJSScope Change-Id: Ibac4dd7641a89b686bee63cf974b2257a35631a2 Reviewed-by: Fabian Kosmale --- src/qmlcompiler/qqmljsimportvisitor.cpp | 2 +- src/qmlcompiler/qqmljsscope.cpp | 4 ++-- src/qmlcompiler/qqmljsscope_p.h | 11 ++++++++--- src/qmlcompiler/qqmljstypedescriptionreader.cpp | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) (limited to 'src/qmlcompiler') diff --git a/src/qmlcompiler/qqmljsimportvisitor.cpp b/src/qmlcompiler/qqmljsimportvisitor.cpp index d310e2ed9d..b81f7b59a7 100644 --- a/src/qmlcompiler/qqmljsimportvisitor.cpp +++ b/src/qmlcompiler/qqmljsimportvisitor.cpp @@ -283,7 +283,7 @@ bool QQmlJSImportVisitor::visit(QQmlJS::AST::UiEnumDeclaration *uied) QQmlJSMetaEnum qmlEnum(uied->name.toString()); for (const auto *member = uied->members; member; member = member->next) qmlEnum.addKey(member->member.toString()); - m_currentScope->addEnum(qmlEnum); + m_currentScope->addEnumeration(qmlEnum); return true; } diff --git a/src/qmlcompiler/qqmljsscope.cpp b/src/qmlcompiler/qqmljsscope.cpp index ed029208dc..388de620b0 100644 --- a/src/qmlcompiler/qqmljsscope.cpp +++ b/src/qmlcompiler/qqmljsscope.cpp @@ -98,12 +98,12 @@ QQmlJSMetaMethod QQmlJSScope::method(const QString &name) const bool QQmlJSScope::isIdInCurrentQMlScopes(const QString &id) const { if (m_scopeType == QQmlJSScope::QMLScope) - return m_properties.contains(id) || m_methods.contains(id) || m_enums.contains(id); + return m_properties.contains(id) || m_methods.contains(id) || m_enumerations.contains(id); const auto qmlScope = findCurrentQMLScope(parentScope()); return qmlScope->m_properties.contains(id) || qmlScope->m_methods.contains(id) - || qmlScope->m_enums.contains(id); + || qmlScope->m_enumerations.contains(id); } bool QQmlJSScope::isIdInCurrentJSScopes(const QString &id) const diff --git a/src/qmlcompiler/qqmljsscope_p.h b/src/qmlcompiler/qqmljsscope_p.h index 24e401fa0a..0513612e42 100644 --- a/src/qmlcompiler/qqmljsscope_p.h +++ b/src/qmlcompiler/qqmljsscope_p.h @@ -166,8 +166,13 @@ public: bool hasMethod(const QString &name) const; QQmlJSMetaMethod method(const QString &name) const; - void addEnum(const QQmlJSMetaEnum &fakeEnum) { m_enums.insert(fakeEnum.name(), fakeEnum); } - QHash enums() const { return m_enums; } + void addEnumeration(const QQmlJSMetaEnum &enumeration) + { + m_enumerations.insert(enumeration.name(), enumeration); + } + QHash enumerations() const { return m_enumerations; } + QQmlJSMetaEnum enumeration(const QString &name) const { return m_enumerations.value(name); } + bool hasEnumeration(const QString &name) const { return m_enumerations.contains(name); } QString fileName() const { return m_fileName; } void setFileName(const QString &file) { m_fileName = file; } @@ -246,7 +251,7 @@ private: QMultiHash m_methods; QHash m_properties; - QHash m_enums; + QHash m_enumerations; QVector m_childScopes; QQmlJSScope::WeakPtr m_parentScope; diff --git a/src/qmlcompiler/qqmljstypedescriptionreader.cpp b/src/qmlcompiler/qqmljstypedescriptionreader.cpp index fd875dd715..0a5c97c3db 100644 --- a/src/qmlcompiler/qqmljstypedescriptionreader.cpp +++ b/src/qmlcompiler/qqmljstypedescriptionreader.cpp @@ -386,7 +386,7 @@ void QQmlJSTypeDescriptionReader::readEnum(UiObjectDefinition *ast, const QQmlJS } } - scope->addEnum(metaEnum); + scope->addEnumeration(metaEnum); } void QQmlJSTypeDescriptionReader::readParameter(UiObjectDefinition *ast, QQmlJSMetaMethod *metaMethod) -- cgit v1.2.3