summaryrefslogtreecommitdiffstats
path: root/src/tools/moc/moc.cpp
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@kde.org>2011-10-29 19:55:36 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-29 21:18:45 +0200
commit4fe3cf8ee991e6adf3756019ff9d326769f0acf0 (patch)
tree3f999612437e7430f3c66c6547ee58d770d56bdf /src/tools/moc/moc.cpp
parentd94c61a941894c6ff28e2e7ad7b1446a8f1f52a1 (diff)
moc: support c++11 style enums
Task-number: QTBUG-21480 Change-Id: Ic116a5a06dd68036823f27146e49511c68cf2de6 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Diffstat (limited to 'src/tools/moc/moc.cpp')
-rw-r--r--src/tools/moc/moc.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index 6374a726ac..8999148108 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -251,6 +251,9 @@ bool Moc::parseEnum(EnumDef *def)
{
bool isTypdefEnum = false; // typedef enum { ... } Foo;
+ if (test(CLASS))
+ def->isEnumClass = true;
+
if (test(IDENTIFIER)) {
def->name = lexem();
} else {
@@ -258,6 +261,10 @@ bool Moc::parseEnum(EnumDef *def)
return false; // anonymous enum
isTypdefEnum = true;
}
+ if (test(COLON)) { // C++11 strongly typed enum
+ // enum Foo : unsigned long { ... };
+ parseType(); //ignore the result
+ }
if (!test(LBRACE))
return false;
do {