diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-03-16 10:01:29 +0100 |
---|---|---|
committer | Kent Hansen <kent.hansen@nokia.com> | 2012-03-16 10:01:29 +0100 |
commit | 440f452aa3a5609e5f6006a03ac36d41462d5908 (patch) | |
tree | 598d682291945055e4f6feb08a228212648482c1 /src/corelib/kernel/qmetatype.h | |
parent | cd1e62ffc121cc68c5a133a8095d431f04d966ce (diff) | |
parent | d4959fa6376255ab4adf8adaeb2ee47ae6b679d2 (diff) |
Merge master into api_changes
Conflicts:
src/corelib/kernel/qmetatype.cpp
src/gui/kernel/qplatformsurface_qpa.cpp
tests/auto/corelib/tools/qtimeline/qtimeline.pro
Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
Diffstat (limited to 'src/corelib/kernel/qmetatype.h')
-rw-r--r-- | src/corelib/kernel/qmetatype.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index d913e37332..aa73785dac 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -447,6 +447,17 @@ namespace QtPrivate { template <class Result, class Arg0> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0)> { enum { Value = false }; }; template <class Result, class Arg0, class Arg1> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0, Arg1)> { enum { Value = false }; }; template <class Result, class Arg0, class Arg1, class Arg2> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0, Arg1, Arg2)> { enum { Value = false }; }; + + template<typename T> + struct QMetaTypeTypeFlags + { + enum { Flags = (!QTypeInfo<T>::isStatic ? QMetaType::MovableType : 0) + | (QTypeInfo<T>::isComplex ? QMetaType::NeedsConstruction : 0) + | (QTypeInfo<T>::isComplex ? QMetaType::NeedsDestruction : 0) + | (IsPointerToTypeDerivedFromQObject<T>::Value ? QMetaType::PointerToQObject : 0) + | (Q_IS_ENUM(T) ? QMetaType::IsEnumeration : 0) + }; + }; } template <typename T> @@ -460,18 +471,7 @@ int qRegisterMetaType(const char *typeName if (typedefOf != -1) return QMetaType::registerTypedef(typeName, typedefOf); - QMetaType::TypeFlags flags; - if (!QTypeInfo<T>::isStatic) - flags |= QMetaType::MovableType; - if (QTypeInfo<T>::isComplex) { - flags |= QMetaType::NeedsConstruction; - flags |= QMetaType::NeedsDestruction; - } - if (QtPrivate::IsPointerToTypeDerivedFromQObject<T>::Value) - flags |= QMetaType::PointerToQObject; - if (Q_IS_ENUM(T)) - flags |= QMetaType::IsEnumeration; - + QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags<T>::Flags); return QMetaType::registerType(typeName, qMetaTypeDeleteHelper<T>, qMetaTypeCreateHelper<T>, qMetaTypeDestructHelper<T>, |