diff options
-rw-r--r-- | shibokengenerator.cpp | 11 | ||||
-rw-r--r-- | shibokengenerator.h | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp index 84ce72300..77fabf130 100644 --- a/shibokengenerator.cpp +++ b/shibokengenerator.cpp @@ -1204,6 +1204,17 @@ const AbstractMetaClass* ShibokenGenerator::getMultipleInheritingClass(const Abs return getMultipleInheritingClass(metaClass->baseClass()); } +AbstractMetaClassList ShibokenGenerator::getAllAncestors(const AbstractMetaClass* metaClass) +{ + AbstractMetaClassList result; + AbstractMetaClassList baseClasses = getBaseClasses(metaClass); + foreach (AbstractMetaClass* base, baseClasses) { + result.append(base); + result.append(getAllAncestors(base)); + } + return result; +} + QString ShibokenGenerator::getApiExportMacro() const { return "SHIBOKEN_"+moduleName().toUpper()+"_API"; // a longer name to avoid name clashes diff --git a/shibokengenerator.h b/shibokengenerator.h index 6fbc15852..34ad26177 100644 --- a/shibokengenerator.h +++ b/shibokengenerator.h @@ -189,9 +189,12 @@ public: /// Returns a list of methods of the given class where each one is part of a different overload with both static and non-static method. AbstractMetaFunctionList getMethodsWithBothStaticAndNonStaticMethods(const AbstractMetaClass* metaClass); - /// Returns a list of parent classes for a method. + /// Returns a list of parent classes for a given class. AbstractMetaClassList getBaseClasses(const AbstractMetaClass* metaClass); + /// Returns a list of all ancestor classes for the given class. + AbstractMetaClassList getAllAncestors(const AbstractMetaClass* metaClass); + const AbstractMetaClass* getMultipleInheritingClass(const AbstractMetaClass* metaClass); void writeBaseConversion(QTextStream& s, const AbstractMetaType* type, |