diff options
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h')
-rw-r--r-- | sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h b/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h index 30df236d6..846895089 100644 --- a/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h +++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h @@ -37,12 +37,19 @@ #include <QSet> #include <QFileInfo> +#include <QVector> class TypeDatabase; class AbstractMetaBuilderPrivate { public: + struct TypeClassEntry + { + AbstractMetaTypeCPtr type; + const AbstractMetaClass *klass; + }; + using TranslateTypeFlags = AbstractMetaBuilder::TranslateTypeFlags; Q_DISABLE_COPY(AbstractMetaBuilderPrivate) @@ -124,7 +131,7 @@ public: */ void fixReturnTypeOfConversionOperator(AbstractMetaFunction *metaFunction); - void parseQ_Property(AbstractMetaClass *metaClass, const QStringList &declarations); + void parseQ_Properties(AbstractMetaClass *metaClass, const QStringList &declarations); void setupEquals(AbstractMetaClass *metaClass); void setupComparable(AbstractMetaClass *metaClass); void setupClonable(AbstractMetaClass *cls); @@ -135,7 +142,8 @@ public: QString fixDefaultValue(const ArgumentModelItem &item, AbstractMetaType *type, AbstractMetaFunction *fnc, AbstractMetaClass *, int argumentIndex); - AbstractMetaType *translateType(const AddedFunction::TypeInfo &typeInfo); + AbstractMetaType *translateType(const AddedFunction::TypeInfo &typeInfo, + QString *errorMessage); AbstractMetaType *translateType(const TypeInfo &type, AbstractMetaClass *currentClass, TranslateTypeFlags flags = {}, @@ -145,6 +153,9 @@ public: AbstractMetaBuilderPrivate *d = nullptr, TranslateTypeFlags flags = {}, QString *errorMessageIn = nullptr); + static TypeEntries findTypeEntries(const QString &qualifiedName, const QString &name, + AbstractMetaClass *currentClass = nullptr, + AbstractMetaBuilderPrivate *d = nullptr); qint64 findOutValueFromString(const QString &stringValue, bool &ok); @@ -157,6 +168,7 @@ public: bool inheritTemplate(AbstractMetaClass *subclass, const AbstractMetaClass *templateClass, const TypeInfo &info); + void inheritTemplateFunctions(AbstractMetaClass *subclass); AbstractMetaType *inheritTemplateType(const AbstractMetaTypeList &templateTypes, const AbstractMetaType *metaType); @@ -165,10 +177,11 @@ public: void sortLists(); AbstractMetaArgumentList reverseList(const AbstractMetaArgumentList &list); - void setInclude(TypeEntry *te, const QString &fileName) const; + void setInclude(TypeEntry *te, const QString &path) const; void fixArgumentNames(AbstractMetaFunction *func, const FunctionModificationList &mods); void fillAddedFunctions(AbstractMetaClass *metaClass); + const AbstractMetaClass *resolveTypeSystemTypeDef(const AbstractMetaType *t) const; AbstractMetaBuilder *q; AbstractMetaClassList m_metaClasses; @@ -187,14 +200,15 @@ public: QHash<const TypeEntry *, AbstractMetaEnum *> m_enums; - QList<NamespaceModelItem> m_scopes; + QVector<NamespaceModelItem> m_scopes; QSet<AbstractMetaClass *> m_setupInheritanceDone; QString m_logDirectory; - QFileInfo m_globalHeader; + QFileInfoList m_globalHeaders; QStringList m_headerPaths; mutable QHash<QString, Include> m_resolveIncludeHash; + QVector<TypeClassEntry> m_typeSystemTypeDefs; // look up metatype->class for type system typedefs bool m_skipDeprecated = false; }; |