diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-09-20 11:36:45 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:09 -0300 |
commit | 5179bca73955373e087d6b51edcabf038c964ac8 (patch) | |
tree | 255a4ca87763fb6c203ee31aa91815a6c0d8f548 /abstractmetabuilder.cpp | |
parent | c182be3e4c89fe81c15722708d8b712598a528b8 (diff) |
Anonymous enums now supported.
Diffstat (limited to 'abstractmetabuilder.cpp')
-rw-r--r-- | abstractmetabuilder.cpp | 16 |
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; |