diff options
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r-- | shibokengenerator.cpp | 26 |
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) |