aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h24
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;
};