diff --git a/etgtools/extractors.py b/etgtools/extractors.py index 8fad8138..4d696c9b 100644 --- a/etgtools/extractors.py +++ b/etgtools/extractors.py @@ -522,6 +522,7 @@ class MethodDef(FunctionDef): self.protection = '' self.defaultCtor = False # use this ctor as the default one self.noDerivedCtor = False # don't generate a ctor in the derived class for this ctor + self.virtualCatcherCode = None self.__dict__.update(kw) if element is not None: self.extract(element) diff --git a/etgtools/sip_generator.py b/etgtools/sip_generator.py index e048c226..30bfef65 100644 --- a/etgtools/sip_generator.py +++ b/etgtools/sip_generator.py @@ -633,6 +633,11 @@ from .%s import * cm.body = code self.generateCppMethod(cm, stream, indent, skipDeclaration=True) + if method.virtualCatcherCode: + stream.write('%s%%VirtualCatcherCode\n' % indent) + stream.write(nci(method.virtualCatcherCode, len(indent)+4)) + stream.write('%s%%End\n' % indent) + stream.write('\n') if checkOverloads and method.overloads: