From e8d719791735e4ec6ef4622e337beecc5e886422 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 9 Nov 2012 04:38:43 +0000 Subject: [PATCH] Allow cppSignature and pyArgsString for CppMethods too git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@72929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- etgtools/extractors.py | 2 +- etgtools/pi_generator.py | 6 +++++- etgtools/sip_generator.py | 9 +++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/etgtools/extractors.py b/etgtools/extractors.py index df87def6..f1275a28 100644 --- a/etgtools/extractors.py +++ b/etgtools/extractors.py @@ -942,7 +942,7 @@ class ClassDef(BaseDef): """ md = CppMethodDef_sip('', self.name, argsString, body, doc=doc, isCtor=True, klass=self, noDerivedCtor=noDerivedCtor, - cppSignature=None, **kw) + cppSignature=cppSignature, **kw) self._addMethod(md) return md diff --git a/etgtools/pi_generator.py b/etgtools/pi_generator.py index 81df415d..eedd4d5d 100644 --- a/etgtools/pi_generator.py +++ b/etgtools/pi_generator.py @@ -423,7 +423,11 @@ class PiWrapperGenerator(generators.WrapperGeneratorBase): def generateMethod(self, method, stream, indent, name=None, docstring=None): assert isinstance(method, extractors.MethodDef) - if method.ignored: + for m in method.all(): # use the first not ignored if there are overloads + if not m.ignored: + method = m + break + else: return if method.isDtor: return diff --git a/etgtools/sip_generator.py b/etgtools/sip_generator.py index 50c329bd..910aaad3 100644 --- a/etgtools/sip_generator.py +++ b/etgtools/sip_generator.py @@ -832,13 +832,14 @@ from .%s import * assert isinstance(method, extractors.CppMethodDef_sip) if method.ignored: return + cppSig = " [ %s ]" % method.cppSignature if method.cppSignature else "" if method.isCtor: - stream.write('%s%s%s%s;\n' % - (indent, method.name, method.argsString, self.annotate(method))) + stream.write('%s%s%s%s%s;\n' % + (indent, method.name, method.argsString, self.annotate(method), cppSig)) else: - stream.write('%s%s %s%s%s;\n' % + stream.write('%s%s %s%s%s%s;\n' % (indent, method.type, method.name, method.argsString, - self.annotate(method))) + self.annotate(method), cppSig)) stream.write('%s%%MethodCode\n' % indent) stream.write(nci(method.body, len(indent)+4)) stream.write('%s%%End\n\n' % indent)