From 2ad8c14d386470893da19568e4225fcb3bf58914 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 10 Feb 2015 09:37:21 +0100 Subject: QMetaType: improve docs and comments Change-Id: I7bcc8cec95eb5abda75d936732b1113b943622dc Reviewed-by: Marc Mutz --- src/corelib/kernel/qmetatype.cpp | 6 +++--- src/corelib/kernel/qmetatype.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 4b441999a1..8f79bf5645 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -381,15 +381,15 @@ struct DefinedTypesFilter { return a QMetaObject relative to this type. - If the type is a pointer type to a subclass of QObject, flags contains + If the type is a pointer type to a subclass of QObject, flags() contains QMetaType::PointerToQObject and this function returns the corresponding QMetaObject. This can be used to in combinaison with QMetaObject::construct to create QObject of this type. - If the type is a Q_GADGET, flags contains QMetaType::IsGadget, and this function returns its + If the type is a Q_GADGET, flags() contains QMetaType::IsGadget, and this function returns its QMetaObject. This can be used to retrieve QMetaMethod and QMetaProperty and use them on a pointer of this type. (given by QVariant::data for example) - If the type is an enumaration, flags contains QMetaType::IsEnumeration, and this function + If the type is an enumeration, flags() contains QMetaType::IsEnumeration, and this function returns the QMetaObject of the enclosing object if the enum was registered as a Q_ENUM or 0 otherwise diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index b743e78890..9659c015ff 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -1369,6 +1369,9 @@ namespace QtPrivate template struct IsQEnumHelper { static const T &declval(); + // If the type was declared with Q_ENUM, the friend qt_getEnumMetaObject(T) declared in the + // Q_ENUM macro will be chosen by ADL, and the return type will be QMetaObject*. + // Otherwise the chosen overload will be qt_getEnumMetaObject(...) which returne 'char' enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) }; }; -- cgit v1.2.3