comparison generator/generator.cpp @ 253:073b9153ed8a

Rev. 264 done right. Problems: - classwizard segfaults on exit due to a bug in signals/slots or runtime. - hellogl doesn't compile with dmd2 due to a bug in the compiler backend
author maxter
date Sun, 30 Aug 2009 09:59:12 +0000
parents ae34188ddd84
children 17b5e13364b7 9784459f0750
comparison
equal deleted inserted replaced
252:37eed70de029 253:073b9153ed8a
191 } 191 }
192 192
193 return false; 193 return false;
194 } 194 }
195 195
196 AbstractMetaFunctionList signalFunctions(const AbstractMetaClass *cls) 196 AbstractMetaFunctionList signalFunctions(const AbstractMetaClass *cls, bool includeBase)
197 { 197 {
198 AbstractMetaFunctionList r; 198 AbstractMetaFunctionList r;
199 if (cls->generateShellClass()) 199 if (cls->generateShellClass())
200 { 200 {
201 AbstractMetaClass *base = cls->baseClass(); 201 if (includeBase)
202 if (base) 202 {
203 r += signalFunctions(base); 203 AbstractMetaClass *base = cls->baseClass();
204 if (base)
205 r += signalFunctions(base);
206 }
204 207
205 foreach (AbstractMetaFunction *f, cls->functions()) 208 foreach (AbstractMetaFunction *f, cls->functions())
206 { 209 {
207 if (!f->isSignal() 210 if (!f->isSignal()
208 || cls != f->implementingClass() 211 || cls != f->implementingClass()
209 || notWrappedYet(f) 212 || notWrappedYet(f)
210 // qtd2 || f->isPrivate() // we want private signals to be accessible as well
211 || f->isModifiedRemoved(TypeSystem::TargetLangCode)) 213 || f->isModifiedRemoved(TypeSystem::TargetLangCode))
212 continue; 214 continue;
213 215
214 r.append(f); 216 r.append(f);
215 } 217 }