Mercurial > projects > qtd
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 } |