aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/ApiExtractor/abstractmetalang.cpp')
-rw-r--r--sources/shiboken2/ApiExtractor/abstractmetalang.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
index 3bdac909c..f1f01e02c 100644
--- a/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
+++ b/sources/shiboken2/ApiExtractor/abstractmetalang.cpp
@@ -2520,28 +2520,18 @@ AbstractMetaEnum *AbstractMetaClass::findEnum(const AbstractMetaClassList &class
{
Q_ASSERT(entry->isEnum());
- QString qualifiedName = entry->qualifiedCppName();
- int pos = qualifiedName.lastIndexOf(QLatin1String("::"));
-
- QString enumName;
- QString className;
-
- if (pos > 0) {
- enumName = qualifiedName.mid(pos + 2);
- className = qualifiedName.mid(0, pos);
- } else {
- enumName = qualifiedName;
- className = TypeDatabase::globalNamespaceClassName(entry);
- }
-
- AbstractMetaClass *metaClass = AbstractMetaClass::findClass(classes, className);
+ auto scopeEntry = entry->parent();
+ AbstractMetaClass *metaClass = AbstractMetaClass::findClass(classes, scopeEntry);
if (!metaClass) {
qCWarning(lcShiboken).noquote().nospace()
<< QStringLiteral("AbstractMeta::findEnum(), unknown class '%1' in '%2'")
- .arg(className, entry->qualifiedCppName());
+ .arg(scopeEntry->qualifiedCppName(), entry->qualifiedCppName());
return nullptr;
}
+ QString qualifiedName = entry->qualifiedCppName();
+ const int pos = qualifiedName.lastIndexOf(QLatin1String("::"));
+ const QString enumName = pos > 0 ? qualifiedName.mid(pos + 2) : qualifiedName;
return metaClass->findEnum(enumName);
}