From 8c347c61abafa68e247ff4664ae658cfa15af932 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 14 Jan 2017 21:42:50 +0000 Subject: Bindings: Use lists in function API instead of strings Custom rules should be able to deal with lists in these cases. This is already the case for function parameters. --- tests/GenerateSipBindings/cpplib.cpp | 5 +++++ tests/GenerateSipBindings/cpplib.h | 7 +++++++ tests/GenerateSipBindings/rules_SipTest.py | 6 ++++++ 3 files changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/GenerateSipBindings/cpplib.cpp b/tests/GenerateSipBindings/cpplib.cpp index 744914a0..8dc7492b 100644 --- a/tests/GenerateSipBindings/cpplib.cpp +++ b/tests/GenerateSipBindings/cpplib.cpp @@ -173,3 +173,8 @@ void TypedefUser::setTagPattern(const QString &tagName, { } + +Shared::Shared(const Shared& other) +{ + +} diff --git a/tests/GenerateSipBindings/cpplib.h b/tests/GenerateSipBindings/cpplib.h index 34167ad3..9b9adcba 100644 --- a/tests/GenerateSipBindings/cpplib.h +++ b/tests/GenerateSipBindings/cpplib.h @@ -6,6 +6,7 @@ #include #include #include +#include #include @@ -106,6 +107,12 @@ private: HasPrivateDefaultCtor(int param = 0); }; +class Shared : public QSharedData +{ +public: + Shared(const Shared& other); +}; + namespace SomeNS { class NonCopyableInNS diff --git a/tests/GenerateSipBindings/rules_SipTest.py b/tests/GenerateSipBindings/rules_SipTest.py index 73c5451b..ad3fcb64 100644 --- a/tests/GenerateSipBindings/rules_SipTest.py +++ b/tests/GenerateSipBindings/rules_SipTest.py @@ -5,6 +5,11 @@ import rules_engine sys.path.append(os.path.dirname(os.path.dirname(rules_engine.__file__))) import Qt5Ruleset +def local_container_rules(): + return [ + [".*", "Shared", ".*", ".*", ".*", rules_engine.discard_QSharedData_base] + ] + def local_function_rules(): return [ ["MyObject", "fwdDecl", ".*", ".*", ".*", rules_engine.function_discard], @@ -28,6 +33,7 @@ def methodGenerator(function, sip, entry): class RuleSet(Qt5Ruleset.RuleSet): def __init__(self): Qt5Ruleset.RuleSet.__init__(self) + self._container_db = rules_engine.ContainerRuleDb(lambda: local_container_rules() + Qt5Ruleset.container_rules()) self._fn_db = rules_engine.FunctionRuleDb(lambda: local_function_rules() + Qt5Ruleset.function_rules()) self._typedef_db = rules_engine.TypedefRuleDb(lambda: local_typedef_rules() + Qt5Ruleset.typedef_rules()) self._modulecode = rules_engine.ModuleCodeDb({ -- cgit v1.2.1