From d7a5af07fbc2fb6f2616410f234d475226518d75 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Mon, 19 Mar 2012 19:37:02 +0000 Subject: [PATCH] Copy+paste the shared pointer closure constructor a couple of times for different numbers of arguments. --- ext/libclementine-common/core/closure.h | 47 +++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/ext/libclementine-common/core/closure.h b/ext/libclementine-common/core/closure.h index 319155ba4..68409cfab 100644 --- a/ext/libclementine-common/core/closure.h +++ b/ext/libclementine-common/core/closure.h @@ -129,16 +129,6 @@ Closure* NewClosure( QObject* receiver, const char* slot); -template -Closure* NewClosure( - QSharedPointer sender, - const char* signal, - QObject* receiver, - const char* slot) { - Q_ASSERT(sender.data()->metaObject()); // Static check for something QObject-like. - return new SharedClosure(new SharedPointer(sender), signal, receiver, slot); -} - template Closure* NewClosure( QObject* sender, @@ -193,4 +183,41 @@ Closure* NewClosure( C_ARG(T0, val0), C_ARG(T1, val1), C_ARG(T2, val2), C_ARG(T3, val3)); } +template +Closure* NewClosure( + QSharedPointer sender, + const char* signal, + QObject* receiver, + const char* slot) { + Q_ASSERT(sender.data()->metaObject()); // Static check for something QObject-like. + return new SharedClosure(new SharedPointer(sender), signal, receiver, slot); +} + +template +Closure* NewClosure( + QSharedPointer sender, + const char* signal, + QObject* receiver, + const char* slot, + const T0& val0) { + Q_ASSERT(sender.data()->metaObject()); // Static check for something QObject-like. + return new SharedClosure( + new SharedPointer(sender), signal, receiver, slot, + C_ARG(T0, val0)); +} + +template +Closure* NewClosure( + QSharedPointer sender, + const char* signal, + QObject* receiver, + const char* slot, + const T0& val0, + const T1& val1) { + Q_ASSERT(sender.data()->metaObject()); // Static check for something QObject-like. + return new SharedClosure( + new SharedPointer(sender), signal, receiver, slot, + C_ARG(T0, val0), C_ARG(T1, val1)); +} + #endif // CLOSURE_H