summaryrefslogtreecommitdiffstats
path: root/src/tools/moc
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2011-12-10 10:53:39 +0100
committerOlivier Goffart <ogoffart@woboq.com>2015-01-13 17:52:14 +0100
commit14583137ae445fbfdc82922266f5c0736454f6c4 (patch)
tree6fdb1e07eb10f6ee9e389ad7cd3b5cecfd105211 /src/tools/moc
parent74443d7bbb319e949928dd081fde04bccb5f7845 (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/tools/moc')
-rw-r--r--src/tools/moc/keywords.cpp4
-rw-r--r--src/tools/moc/moc.cpp2
-rw-r--r--src/tools/moc/token.h2
-rw-r--r--src/tools/moc/util/generate_keywords.cpp2
4 files changed, 8 insertions, 2 deletions
diff --git a/src/tools/moc/keywords.cpp b/src/tools/moc/keywords.cpp
index bb4f2883cb..5bee666c8d 100644
--- a/src/tools/moc/keywords.cpp
+++ b/src/tools/moc/keywords.cpp
@@ -840,12 +840,12 @@ static const struct
{CHARACTER, 0, 78, 393, CHARACTER},
{CHARACTER, 0, 85, 394, CHARACTER},
{CHARACTER, 0, 77, 395, CHARACTER},
- {CHARACTER, 0, 83, 396, CHARACTER},
+ {Q_ENUM_TOKEN, 0, 83, 396, CHARACTER},
{Q_ENUMS_TOKEN, 0, 0, 0, CHARACTER},
{CHARACTER, 0, 76, 398, CHARACTER},
{CHARACTER, 0, 65, 399, CHARACTER},
{CHARACTER, 0, 71, 400, CHARACTER},
- {CHARACTER, 0, 83, 401, CHARACTER},
+ {Q_FLAG_TOKEN, 0, 83, 401, CHARACTER},
{Q_FLAGS_TOKEN, 0, 0, 0, CHARACTER},
{CHARACTER, 0, 69, 403, CHARACTER},
{CHARACTER, 0, 67, 404, CHARACTER},
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index 75349191d4..fe59f430f5 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -696,9 +696,11 @@ void Moc::parse()
parsePluginData(&def);
break;
case Q_ENUMS_TOKEN:
+ case Q_ENUM_TOKEN:
parseEnumOrFlag(&def, false);
break;
case Q_FLAGS_TOKEN:
+ case Q_FLAG_TOKEN:
parseEnumOrFlag(&def, true);
break;
case Q_DECLARE_FLAGS_TOKEN:
diff --git a/src/tools/moc/token.h b/src/tools/moc/token.h
index 57be5b4999..19832e5406 100644
--- a/src/tools/moc/token.h
+++ b/src/tools/moc/token.h
@@ -162,7 +162,9 @@ QT_BEGIN_NAMESPACE
F(Q_PROPERTY_TOKEN) \
F(Q_PLUGIN_METADATA_TOKEN) \
F(Q_ENUMS_TOKEN) \
+ F(Q_ENUM_TOKEN) \
F(Q_FLAGS_TOKEN) \
+ F(Q_FLAG_TOKEN) \
F(Q_DECLARE_FLAGS_TOKEN) \
F(Q_DECLARE_INTERFACE_TOKEN) \
F(Q_DECLARE_METATYPE_TOKEN) \
diff --git a/src/tools/moc/util/generate_keywords.cpp b/src/tools/moc/util/generate_keywords.cpp
index 98800486a3..1d94d1fbdb 100644
--- a/src/tools/moc/util/generate_keywords.cpp
+++ b/src/tools/moc/util/generate_keywords.cpp
@@ -222,7 +222,9 @@ static const Keyword keywords[] = {
{ "Q_PROPERTY", "Q_PROPERTY_TOKEN" },
{ "Q_PLUGIN_METADATA", "Q_PLUGIN_METADATA_TOKEN" },
{ "Q_ENUMS", "Q_ENUMS_TOKEN" },
+ { "Q_ENUM", "Q_ENUM_TOKEN" },
{ "Q_FLAGS", "Q_FLAGS_TOKEN" },
+ { "Q_FLAG", "Q_FLAG_TOKEN" },
{ "Q_DECLARE_FLAGS", "Q_DECLARE_FLAGS_TOKEN" },
{ "Q_DECLARE_INTERFACE", "Q_DECLARE_INTERFACE_TOKEN" },
{ "Q_DECLARE_METATYPE", "Q_DECLARE_METATYPE_TOKEN" },