aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppHttpUploadManager.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-08-16 21:00:15 +0200
committerLinus Jahn <lnj@kaidan.im>2023-01-03 22:05:54 +0100
commitb17284ee7d674416e0d11f1699f73fcc606262d4 (patch)
tree86597f2bc2a1ed2d257e0cbf8e7de1ca54080c08 /src/client/QXmppHttpUploadManager.cpp
parent3271c6642439d4d3c0d8c634e2b3f4cf17b908a0 (diff)
Introduce QXmppTask & QXmppPromise
Closes #502. Co-authored-by: Jonah BrĂ¼chert <jbb@kaidan.im>
Diffstat (limited to 'src/client/QXmppHttpUploadManager.cpp')
-rw-r--r--src/client/QXmppHttpUploadManager.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/client/QXmppHttpUploadManager.cpp b/src/client/QXmppHttpUploadManager.cpp
index 2fe2994e..35eedf80 100644
--- a/src/client/QXmppHttpUploadManager.cpp
+++ b/src/client/QXmppHttpUploadManager.cpp
@@ -5,8 +5,8 @@
#include "QXmppHttpUploadManager.h"
#include "QXmppClient.h"
-#include "QXmppFutureUtils_p.h"
#include "QXmppHttpUploadIq.h"
+#include "QXmppTask.h"
#include "QXmppUploadRequestManager.h"
#include "QXmppUtils_p.h"
@@ -299,11 +299,8 @@ std::shared_ptr<QXmppHttpUpload> QXmppHttpUploadManager::uploadFile(std::unique_
}
auto future = client()->findExtension<QXmppUploadRequestManager>()->requestSlot(filename, fileSize, mimeType, uploadServiceJid);
-#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
- await(future, this, [this, upload, data = std::move(data)](SlotResult result) mutable {
-#else
- await(future, this, [this, upload, rawSourceDevice = data.release()](SlotResult result) mutable {
-#endif
+ // TODO: rawSourceDevice: could this lead to a memory leak if the "then lambda" is never executed?
+ future.then(this, [this, upload, rawSourceDevice = data.release()](SlotResult result) mutable {
// first check whether upload was cancelled in the meantime
if (upload->d->cancelled) {
upload->d->reportFinished();
@@ -331,11 +328,6 @@ std::shared_ptr<QXmppHttpUpload> QXmppHttpUploadManager::uploadFile(std::unique_
request.setRawHeader(itr.key().toUtf8(), itr.value().toUtf8());
}
-#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
- auto *rawSourceDevice = data.release();
-#else
- // already defined in lambda capture
-#endif
auto *reply = d->netManager->put(request, rawSourceDevice);
rawSourceDevice->setParent(reply);
upload->d->reply = reply;