diff generator/generatorsetd.cpp @ 260:b5773ccab07d lifetime

closer
author maxter
date Fri, 18 Sep 2009 18:52:03 +0000
parents ae06da58ec25
children
line wrap: on
line diff
--- a/generator/generatorsetd.cpp	Thu Sep 17 16:28:41 2009 +0000
+++ b/generator/generatorsetd.cpp	Fri Sep 18 18:52:03 2009 +0000
@@ -217,6 +217,26 @@
 
     generators << cointainerGenerator;
     contexts << "cointainerGenerator";
+    
+    // qtd
+    // code for including classses in 1 module for avoiding circular imports
+    foreach (AbstractMetaClass *cls, builder.classes()) {
+       ComplexTypeEntry *ctype = const_cast<ComplexTypeEntry*>(cls->typeEntry());
+
+        if (!cls->isInterface() && cls->isAbstract())
+            ctype->setAbstract(true);
+        
+        ctype->setIsPolymorphic(cls->isPolymorphic());
+        
+
+        foreach(QString child, ctype->includedClasses) {
+            ComplexTypeEntry *ctype_child = TypeDatabase::instance()->findComplexType(child);
+            ctype_child->addedTo = cls->name();
+        }
+
+        foreach (AbstractMetaFunction *function, cls->functions())
+            function->checkStoreResult();
+    }
 
     for (int i=0; i<generators.size(); ++i) {
         Generator *generator = generators.at(i);