diff options
-rw-r--r-- | ApiExtractor/parser/codemodel.cpp | 11 | ||||
-rw-r--r-- | ApiExtractor/parser/codemodel.h | 1 |
2 files changed, 10 insertions, 2 deletions
diff --git a/ApiExtractor/parser/codemodel.cpp b/ApiExtractor/parser/codemodel.cpp index 43a8c7ec5..7e3468a4b 100644 --- a/ApiExtractor/parser/codemodel.cpp +++ b/ApiExtractor/parser/codemodel.cpp @@ -406,7 +406,10 @@ FunctionDefinitionList _ScopeModelItem::functionDefinitions() const EnumList _ScopeModelItem::enums() const { - return _M_enums.values(); + EnumList result; + foreach (const QString& name, _M_enumNames) + result.append(_M_enums.value(name)); + return result; } void _ScopeModelItem::addClass(ClassModelItem item) @@ -440,7 +443,9 @@ void _ScopeModelItem::addTypeAlias(TypeAliasModelItem item) void _ScopeModelItem::addEnum(EnumModelItem item) { + _M_enumNames.removeOne(item->name()); _M_enums.insert(item->name(), item); + _M_enumNames.append(item->name()); } void _ScopeModelItem::removeClass(ClassModelItem item) @@ -499,8 +504,10 @@ void _ScopeModelItem::removeEnum(EnumModelItem item) { QHash<QString, EnumModelItem>::Iterator it = _M_enums.find(item->name()); - if (it != _M_enums.end() && it.value() == item) + if (it != _M_enums.end() && it.value() == item) { + _M_enumNames.removeOne(item->name()); _M_enums.erase(it); + } } ClassModelItem _ScopeModelItem::findClass(const QString &name) const diff --git a/ApiExtractor/parser/codemodel.h b/ApiExtractor/parser/codemodel.h index 3b3571f6b..82de75bee 100644 --- a/ApiExtractor/parser/codemodel.h +++ b/ApiExtractor/parser/codemodel.h @@ -401,6 +401,7 @@ private: _ScopeModelItem(const _ScopeModelItem &other); void operator = (const _ScopeModelItem &other); + QStringList _M_enumNames; QStringList _M_enumsDeclarations; }; |