From 5179bca73955373e087d6b51edcabf038c964ac8 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Mon, 20 Sep 2010 11:36:45 -0300 Subject: Anonymous enums now supported. --- abstractmetabuilder.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'abstractmetabuilder.cpp') 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; -- cgit v1.2.3