aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/parser/codemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/parser/codemodel.h')
-rw-r--r--sources/shiboken6/ApiExtractor/parser/codemodel.h23
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