summaryrefslogtreecommitdiffstats
path: root/src/interfaceframework/qifpendingreply.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaceframework/qifpendingreply.h')
-rw-r--r--src/interfaceframework/qifpendingreply.h39
1 files changed, 14 insertions, 25 deletions
diff --git a/src/interfaceframework/qifpendingreply.h b/src/interfaceframework/qifpendingreply.h
index 7149dd5e..73ee362f 100644
--- a/src/interfaceframework/qifpendingreply.h
+++ b/src/interfaceframework/qifpendingreply.h
@@ -114,17 +114,15 @@ public:
else if (failed)
failed();
} else {
- QSharedPointer<QIfPendingReplyWatcher> w = m_watcher;
+ QWeakPointer<QIfPendingReplyWatcher> w = m_watcher;
if (success) {
QObject::connect(watcher(), &QIfPendingReplyWatcher::replySuccess, watcher(), [success, w]() {
- success(w->value().value<T>());
- });
- }
- if (failed) {
- QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), [failed]() {
- failed();
+ if (w)
+ success(w.toStrongRef()->value().value<T>());
});
}
+ if (failed)
+ QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), failed);
}
}
@@ -163,17 +161,15 @@ public:
else if (failed)
failed();
} else {
- QSharedPointer<QIfPendingReplyWatcher> w = m_watcher;
+ QWeakPointer<QIfPendingReplyWatcher> w = m_watcher;
if (success) {
QObject::connect(watcher(), &QIfPendingReplyWatcher::replySuccess, watcher(), [success, w]() {
- success(w->value());
- });
- }
- if (failed) {
- QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), [failed]() {
- failed();
+ if (w)
+ success(w.toStrongRef()->value());
});
}
+ if (failed)
+ QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), failed);
}
}
@@ -208,17 +204,10 @@ public:
else if (failed)
failed();
} else {
- QSharedPointer<QIfPendingReplyWatcher> w = m_watcher;
- if (success) {
- QObject::connect(watcher(), &QIfPendingReplyWatcher::replySuccess, watcher(), [success, w]() {
- success();
- });
- }
- if (failed) {
- QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), [failed]() {
- failed();
- });
- }
+ if (success)
+ QObject::connect(watcher(), &QIfPendingReplyWatcher::replySuccess, watcher(), success);
+ if (failed)
+ QObject::connect(watcher(), &QIfPendingReplyWatcher::replyFailed, watcher(), failed);
}
}