aboutsummaryrefslogtreecommitdiffstats
path: root/abstractmetabuilder.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-09-20 11:36:45 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:09 -0300
commit5179bca73955373e087d6b51edcabf038c964ac8 (patch)
tree255a4ca87763fb6c203ee31aa91815a6c0d8f548 /abstractmetabuilder.cpp
parentc182be3e4c89fe81c15722708d8b712598a528b8 (diff)
Anonymous enums now supported.
Diffstat (limited to 'abstractmetabuilder.cpp')
-rw-r--r--abstractmetabuilder.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index e650b5f06..197acbd4e 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -895,7 +895,21 @@ AbstractMetaEnum* AbstractMetaBuilder::traverseEnum(EnumModelItem enumItem, Abst
QString qualifiedName = enumItem->qualifiedName().join("::");
- TypeEntry* typeEntry = TypeDatabase::instance()->findType(qualifiedName);
+ TypeEntry* typeEntry = 0;
+ if (!enumItem->isAnonymous()) {
+ typeEntry = TypeDatabase::instance()->findType(qualifiedName);
+ } else {
+ QStringList tmpQualifiedName = enumItem->qualifiedName();
+ foreach (const EnumeratorModelItem& enumValue, enumItem->enumerators()) {
+ tmpQualifiedName.removeLast();
+ tmpQualifiedName << enumValue->name();
+ qualifiedName = tmpQualifiedName.join("::");
+ typeEntry = TypeDatabase::instance()->findType(qualifiedName);
+ if (typeEntry)
+ break;
+ }
+ }
+
QString enumName = enumItem->name();
QString className;