From 9b72bcfd608817509d062f0971212cccfbe3d285 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Sun, 10 Aug 2014 18:56:37 +0200 Subject: Introduces QMetaEnum::fromType Change-Id: I1976c1844e52ef8d70a1bbe9945f3299428dbf87 Reviewed-by: Lars Knoll Reviewed-by: Shawn Rutledge --- src/corelib/kernel/qmetaobject.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/corelib/kernel/qmetaobject.h') diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h index fdbcf5171d..eaef05f03d 100644 --- a/src/corelib/kernel/qmetaobject.h +++ b/src/corelib/kernel/qmetaobject.h @@ -223,6 +223,15 @@ public: inline const QMetaObject *enclosingMetaObject() const { return mobj; } inline bool isValid() const { return name() != 0; } + + template static QMetaEnum fromType() { + Q_STATIC_ASSERT_X(QtPrivate::IsQEnumHelper::Value, + "QMetaEnum::fromType only works with enums declared as Q_ENUM or Q_FLAG"); + const QMetaObject *metaObject = qt_getEnumMetaObject(T()); + const char *name = qt_getEnumName(T()); + return metaObject->enumerator(metaObject->indexOfEnumerator(name)); + } + private: const QMetaObject *mobj; uint handle; -- cgit v1.2.3