From c615b9c1db720d97034263081ad83f80496404a7 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 28 Apr 2010 15:07:51 -0300 Subject: Add EnumValueTypeEntry. Enum values are in global namespace, so sometimes you need to get them from TypeDatabase, a use case for this is a template class where the template parameter is a enum value. --- abstractmetabuilder.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'abstractmetabuilder.cpp') diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp index d6b348ae3..0f3e5461b 100644 --- a/abstractmetabuilder.cpp +++ b/abstractmetabuilder.cpp @@ -909,6 +909,19 @@ AbstractMetaEnum *AbstractMetaBuilder::traverseEnum(EnumModelItem enumItem, Abst metaEnum->setOriginalAttributes(metaEnum->attributes()); + // Register all enum values on Type database + TypeDatabase* typeDb = TypeDatabase::instance(); + foreach(EnumeratorModelItem e, enumItem->enumerators()) { + QString name; + if (enclosing) { + name += enclosing->name(); + name += "::"; + } + name += e->name(); + EnumValueTypeEntry* enumValue = new EnumValueTypeEntry(name, e->value(), static_cast(typeEntry)); + typeDb->addType(enumValue); + } + return metaEnum; } -- cgit v1.2.3