diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/parser/codemodel.h')
-rw-r--r-- | sources/shiboken6/ApiExtractor/parser/codemodel.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/sources/shiboken6/ApiExtractor/parser/codemodel.h b/sources/shiboken6/ApiExtractor/parser/codemodel.h index db3675d17..38652aa7e 100644 --- a/sources/shiboken6/ApiExtractor/parser/codemodel.h +++ b/sources/shiboken6/ApiExtractor/parser/codemodel.h @@ -205,7 +205,7 @@ public: ~_ScopeModelItem(); ClassList classes() const { return m_classes; } - EnumList enums() const { return m_enums; } + const EnumList &enums() const { return m_enums; } inline const FunctionList &functions() const { return m_functions; } TypeDefList typeDefs() const { return m_typeDefs; } TemplateTypeAliasList templateTypeAliases() const { return m_templateTypeAliases; } @@ -220,6 +220,16 @@ public: ClassModelItem findClass(const QString &name) const; EnumModelItem findEnum(const QString &name) const; + + struct FindEnumByValueReturn + { + operator bool() const { return !item.isNull(); } + + EnumModelItem item; + QString qualifiedName; + }; + FindEnumByValueReturn findEnumByValue(QStringView value) const; + FunctionList findFunctions(const QString &name) const; TypeDefModelItem findTypeDef(const QString &name) const; TemplateTypeAliasModelItem findTemplateTypeAlias(const QString &name) const; @@ -252,6 +262,13 @@ protected: private: qsizetype indexOfEnum(const QString &name) const; + FindEnumByValueReturn findEnumByValueHelper(QStringView fullValue, + QStringView value) const; + static FindEnumByValueReturn + findEnumByValueRecursion(const _ScopeModelItem *scope, + QStringView fullValue, QStringView value, + bool searchSiblingNamespaces = true); + ClassList m_classes; EnumList m_enums; TypeDefList m_typeDefs; @@ -288,7 +305,7 @@ public: : _ScopeModelItem(model, name, kind), m_classType(CodeModel::Class) {} ~_ClassModelItem(); - QList<BaseClass> baseClasses() const { return m_baseClasses; } + const QList<BaseClass> &baseClasses() const { return m_baseClasses; } const QList<UsingMember> &usingMembers() const; void addUsingMember(const QString &className, const QString &memberName, @@ -636,6 +653,8 @@ public: EnumKind enumKind() const { return m_enumKind; } void setEnumKind(EnumKind kind) { m_enumKind = kind; } + qsizetype indexOfValue(QStringView value) const; + #ifndef QT_NO_DEBUG_STREAM void formatDebug(QDebug &d) const override; #endif |