From 64eb5f8e1320feb78c56ec0acb7399ee6085770d Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 23 Apr 2016 17:24:11 +0200 Subject: Add the PythonModuleGeneration module This can be used by KF5 libraries to generate python 2 and 3 bindings. --- tests/GenerateSipBindings/cpplib.cpp | 143 +++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 tests/GenerateSipBindings/cpplib.cpp (limited to 'tests/GenerateSipBindings/cpplib.cpp') diff --git a/tests/GenerateSipBindings/cpplib.cpp b/tests/GenerateSipBindings/cpplib.cpp new file mode 100644 index 00000000..c5b7a5fb --- /dev/null +++ b/tests/GenerateSipBindings/cpplib.cpp @@ -0,0 +1,143 @@ + +#include "cpplib.h" + +MyObject::MyObject(QObject* parent) + : QObject(parent) +{ + +} + +double MyObject::unnamedParameters(int i, double d) +{ + return i * d; +} + +int MyObject::addThree(int input) const +{ + return input + 3; +} + +QList MyObject::addThree(QList input) const +{ + auto output = input; + std::transform(output.begin(), output.end(), + output.begin(), + [](int in) { return in + 3; }); + return output; +} + +const QString MyObject::addThree(const QString& input, const QString& prefix) const +{ + return prefix + input + QStringLiteral("Three"); +} + +int MyObject::findNeedle(QStringList list, QString needle, Qt::MatchFlags flags) const +{ + if (flags & Qt::MatchStartsWith) { + auto it = std::find_if(list.begin(), list.end(), [needle](QString cand) { + return cand.startsWith(needle); + }); + if (it != list.end()) { + return std::distance(list.begin(), it); + } + return -1; + } + return list.indexOf(needle); +} + +int MyObject::qtEnumTest(QFlags flags) +{ + return flags; +} + +int MyObject::localEnumTest(QFlags flags) +{ + return flags; +} + +int MyObject::functionParam(std::function fn) +{ + return fn(); +} + +int MyObject::groups(unsigned int maxCount) const +{ + return maxCount; +} + +class FwdDecl +{ + +}; + +int MyObject::fwdDecl(const FwdDecl&) +{ + return 42; +} + +int MyObject::const_parameters(const int input, QObject* const obj) const +{ + if (obj) return input / 3; + return input / 2; +} + +NonCopyable::NonCopyable() + : mNum(new int(42)) +{ + +} + +NonCopyable::~NonCopyable() +{ + delete mNum; +} + +NonCopyableByMacro::NonCopyableByMacro() +{ + +} + +namespace SomeNS { + +NonCopyableInNS::NonCopyableInNS() + : mNum(new int(42)) +{ + +} + +NonCopyableInNS::~NonCopyableInNS() +{ + delete mNum; +} + +} + +void MyObject::publicSlot1() +{ + Q_EMIT publicSlotCalled(); +} + +void MyObject::publicSlot2() +{ + Q_EMIT publicSlotCalled(); +} + +void MyObject::protectedSlot1() +{ + Q_EMIT protectedSlotCalled(); +} + +void MyObject::protectedSlot2() +{ + Q_EMIT protectedSlotCalled(); +} + +void MyObject::privateSlot1() +{ + Q_EMIT privateSlotCalled(); +} + +void MyObject::privateSlot2() +{ + Q_EMIT privateSlotCalled(); +} -- cgit v1.2.1