diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-02 11:06:32 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-02 12:36:43 (GMT) |
commit | bdaf37f74e69f74c8fec23739e4dad23121af415 (patch) | |
tree | c84fb1a1698c926af083751d4d2112a0bcd48941 /src/declarative/qml/qmlvmemetaobject_p.h | |
parent | 8491b0476a221cf136b412bda532662a69063045 (diff) | |
download | Qt-bdaf37f74e69f74c8fec23739e4dad23121af415.zip Qt-bdaf37f74e69f74c8fec23739e4dad23121af415.tar.gz Qt-bdaf37f74e69f74c8fec23739e4dad23121af415.tar.bz2 |
Support parameterized synthesized methods
Diffstat (limited to 'src/declarative/qml/qmlvmemetaobject_p.h')
-rw-r--r-- | src/declarative/qml/qmlvmemetaobject_p.h | 59 |
1 files changed, 43 insertions, 16 deletions
diff --git a/src/declarative/qml/qmlvmemetaobject_p.h b/src/declarative/qml/qmlvmemetaobject_p.h index 45fb33d..6421c3f 100644 --- a/src/declarative/qml/qmlvmemetaobject_p.h +++ b/src/declarative/qml/qmlvmemetaobject_p.h @@ -59,11 +59,45 @@ #include <private/qobject_p.h> QT_BEGIN_NAMESPACE + +struct QmlVMEMetaData +{ + short propertyCount; + short aliasCount; + short signalCount; + short methodCount; + + struct AliasData { + int contextIdx; + int propertyIdx; + }; + + struct PropertyData { + int propertyType; + }; + + struct MethodData { + int parameterCount; + }; + + PropertyData *propertyData() const { + return (PropertyData *)(((const char *)this) + sizeof(QmlVMEMetaData)); + } + + AliasData *aliasData() const { + return (AliasData *)(propertyData() + propertyCount); + } + + MethodData *methodData() const { + return (MethodData *)(aliasData() + propertyCount); + } +}; + class QmlRefCount; class QmlVMEMetaObject : public QAbstractDynamicMetaObject { public: - QmlVMEMetaObject(QObject *, const QMetaObject *, QList<QString> *, int slotData, const QByteArray &aliasData, QmlRefCount * = 0); + QmlVMEMetaObject(QObject *, const QMetaObject *, QList<QString> *, int slotData, const QmlVMEMetaData *data, QmlRefCount * = 0); ~QmlVMEMetaObject(); protected: @@ -72,26 +106,19 @@ protected: private: QObject *object; QmlRefCount *ref; - int baseProp; - int baseSig; - int baseSlot; - int slotCount; + + const QmlVMEMetaData *metaData; + int propOffset; + int methodOffset; + QVariant *data; - QBitArray vTypes; QBitArray aConnected; + QList<QString> *slotData; int slotDataIdx; + QAbstractDynamicMetaObject *parent; - QByteArray aliasData; - struct Aliases { - int aliasCount; - int propCount; - int signalOffset; - } *aliases; - struct AliasArray { - int contextIdx; - int propIdx; - } *aliasArray; + }; QT_END_NAMESPACE |