aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-02-24 13:59:07 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-02-24 15:41:50 -0300
commitd84917a9b4c302c0eea4ee011f23ab8ed5bb1022 (patch)
treef51017fb7bb5e43fa78849b3e0e9129bd9833d36 /shibokengenerator.cpp
parentc3ace01b0c18b340e2453771ab529bce694d621b (diff)
Adds method ShibokenGenerator::getAllAncestors(metaClass)
The new method returns a flat list of all the given class' ancestors.
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r--shibokengenerator.cpp11
1 files changed, 11 insertions, 0 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