diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2011-12-10 10:53:39 +0100 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2015-01-13 17:52:14 +0100 |
commit | 14583137ae445fbfdc82922266f5c0736454f6c4 (patch) | |
tree | 6fdb1e07eb10f6ee9e389ad7cd3b5cecfd105211 /src/corelib/kernel/qobjectdefs.h | |
parent | 74443d7bbb319e949928dd081fde04bccb5f7845 (diff) |
Introduce Q_ENUM and Q_FLAG macros
In replacement for Q_ENUMS and Q_FLAGS.
Q_ENUM(Foo) has to be put after the declaration of Foo in an object.
It will tell moc to include the enum in the meta object (just like
Q_ENUMS) and will allow templated code to get the metaobject for
that enum.
Will be used by QDebug and QMetaType
Change-Id: Iefaf8ae07dc0359828102bf384809346629b3e23
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Diffstat (limited to 'src/corelib/kernel/qobjectdefs.h')
-rw-r--r-- | src/corelib/kernel/qobjectdefs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h index 84e7a65a54..af99546f04 100644 --- a/src/corelib/kernel/qobjectdefs.h +++ b/src/corelib/kernel/qobjectdefs.h @@ -84,6 +84,10 @@ class QString; #define Q_OVERRIDE(text) #define Q_ENUMS(x) #define Q_FLAGS(x) +#define Q_ENUM(ENUM) \ + friend Q_DECL_CONSTEXPR const QMetaObject *qt_getEnumMetaObject(ENUM) Q_DECL_NOEXCEPT { return &staticMetaObject; } \ + friend Q_DECL_CONSTEXPR const char *qt_getEnumName(ENUM) Q_DECL_NOEXCEPT { return #ENUM; } +#define Q_FLAG(ENUM) Q_ENUM(ENUM) #define Q_SCRIPTABLE #define Q_INVOKABLE #define Q_SIGNAL @@ -186,6 +190,8 @@ private: \ #define Q_OVERRIDE(text) Q_OVERRIDE(text) #define Q_ENUMS(x) Q_ENUMS(x) #define Q_FLAGS(x) Q_FLAGS(x) +#define Q_ENUM(x) Q_ENUM(x) +#define Q_FLAGS(x) Q_FLAGS(x) /* qmake ignore Q_OBJECT */ #define Q_OBJECT Q_OBJECT /* qmake ignore Q_OBJECT */ |