diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-04-01 20:31:55 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-01 15:07:10 +0200 |
commit | 14c7bb72b98ef39a9118ae0a8e48a3ccd58db07d (patch) | |
tree | c764b32a9106419310f2f89618936ba2f3825b90 /src/corelib/kernel/qmetatype_p.h | |
parent | 2988c44f7675ba3c4a4b28690db467ba0e40469d (diff) |
Store the QMetaObject with the QMetaType.
This will allow conversion between pointers to compatible QObject
derived types.
Change-Id: I19e08934571fb3f1b91e594892214041fe5f6a11
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qmetatype_p.h')
-rw-r--r-- | src/corelib/kernel/qmetatype_p.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h index cffc45c988..126acde8fa 100644 --- a/src/corelib/kernel/qmetatype_p.h +++ b/src/corelib/kernel/qmetatype_p.h @@ -130,6 +130,7 @@ public: QMetaType::Destructor destructor; int size; quint32 flags; // same as QMetaType::TypeFlags + const QMetaObject *metaObject; }; #ifndef QT_NO_DATASTREAM @@ -147,6 +148,12 @@ public: QT_METATYPE_INTERFACE_INIT_EMPTY_DATASTREAM_IMPL(Type) #endif +#ifndef QT_BOOTSTRAPPED +#define METAOBJECT_DELEGATE(Type) (QtPrivate::MetaObjectForType<Type>::value()) +#else +#define METAOBJECT_DELEGATE(Type) 0 +#endif + #define QT_METATYPE_INTERFACE_INIT_IMPL(Type, DATASTREAM_DELEGATE) \ { \ /*creator*/(qMetaTypeCreateHelper<Type>), \ @@ -155,7 +162,8 @@ public: /*constructor*/(qMetaTypeConstructHelper<Type>), \ /*destructor*/(qMetaTypeDestructHelper<Type>), \ /*size*/(QTypeInfo<Type>::sizeOf), \ - /*flags*/QtPrivate::QMetaTypeTypeFlags<Type>::Flags \ + /*flags*/QtPrivate::QMetaTypeTypeFlags<Type>::Flags, \ + /*metaObject*/METAOBJECT_DELEGATE(Type) \ } @@ -179,7 +187,8 @@ public: /*constructor*/ 0, \ /*destructor*/ 0, \ /*size*/ 0, \ - /*flags*/ 0 \ + /*flags*/ 0, \ + /*metaObject*/ 0 \ } namespace QtMetaTypePrivate { |