aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r--shibokengenerator.cpp26
1 files changed, 5 insertions, 21 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp
index 3e6d6ff34..f26c872c6 100644
--- a/shibokengenerator.cpp
+++ b/shibokengenerator.cpp
@@ -952,28 +952,12 @@ bool ShibokenGenerator::injectedCodeCallsCppFunction(const AbstractMetaFunction*
return false;
}
-QStringList ShibokenGenerator::getBaseClasses(const AbstractMetaClass* metaClass)
+AbstractMetaClassList ShibokenGenerator::getBaseClasses(const AbstractMetaClass* metaClass)
{
- QStringList baseClass;
-
- if (!metaClass->baseClassName().isEmpty() &&
- (metaClass->name() != metaClass->baseClassName()))
- baseClass.append(metaClass->baseClassName());
-
- foreach (AbstractMetaClass* interface, metaClass->interfaces()) {
- AbstractMetaClass* aux = interface->primaryInterfaceImplementor();
- if (!aux)
- continue;
-
- //skip templates
- if (!aux->templateArguments().isEmpty())
- continue;
-
- if (!aux->name().isEmpty() && (metaClass->name() != aux->name()))
- baseClass.append(aux->name());
- }
-
- return baseClass;
+ AbstractMetaClassList baseClasses;
+ foreach (QString parent, metaClass->baseClassNames())
+ baseClasses << classes().findClass(parent);
+ return baseClasses;
}
const AbstractMetaClass* ShibokenGenerator::getMultipleInheritingClass(const AbstractMetaClass* metaClass)