Project: Make subscribeSignal handle signals with Parameters

Change-Id: Ic685da344f7bdf201daf9156ce48c87ced04e023
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2017-09-21 16:24:44 +02:00
parent 49e0cef765
commit 357c27e651

View File

@@ -169,8 +169,8 @@ public:
bool isParsing() const; bool isParsing() const;
bool hasParsingData() const; bool hasParsingData() const;
template<typename S, typename R, typename T> template<typename S, typename R, typename T, typename ...Args1, typename ...Args2>
void subscribeSignal(void (S::*sig)(), R*recv, T (R::*sl)()) { void subscribeSignal(void (S::*sig)(Args1...), R*recv, T (R::*sl)(Args2...)) {
new Internal::ProjectSubscription([sig, recv, sl, this](ProjectConfiguration *pc) { new Internal::ProjectSubscription([sig, recv, sl, this](ProjectConfiguration *pc) {
if (S* sender = qobject_cast<S*>(pc)) if (S* sender = qobject_cast<S*>(pc))
return connect(sender, sig, recv, sl); return connect(sender, sig, recv, sl);
@@ -178,8 +178,8 @@ public:
}, recv, this); }, recv, this);
} }
template<typename S, typename R, typename T> template<typename S, typename R, typename T, typename ...Args1>
void subscribeSignal(void (S::*sig)(), R*recv, T sl) { void subscribeSignal(void (S::*sig)(Args1...), R*recv, T sl) {
new Internal::ProjectSubscription([sig, recv, sl, this](ProjectConfiguration *pc) { new Internal::ProjectSubscription([sig, recv, sl, this](ProjectConfiguration *pc) {
if (S* sender = qobject_cast<S*>(pc)) if (S* sender = qobject_cast<S*>(pc))
return connect(sender, sig, recv, sl); return connect(sender, sig, recv, sl);