summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2021-01-07 11:07:54 +0100
committerUwe Klotz <uklotz@mixxx.org>2021-01-07 11:38:16 +0100
commit821208f510e462716fecccbf86dc3c588237ea0c (patch)
tree14e331de4de3d3dfadc961c0af18d3d91c04f09b /src
parentbd8ef583c72d2a462299040771d68319a0e523d8 (diff)
WebTask: Send an aborted signal when task not started
Diffstat (limited to 'src')
-rw-r--r--src/network/networktask.cpp2
-rw-r--r--src/network/networktask.h9
-rw-r--r--src/network/webtask.cpp8
3 files changed, 13 insertions, 6 deletions
diff --git a/src/network/networktask.cpp b/src/network/networktask.cpp
index 5bbb67e78b..9dc25df338 100644
--- a/src/network/networktask.cpp
+++ b/src/network/networktask.cpp
@@ -65,7 +65,7 @@ void NetworkTask::abort() {
}
void NetworkTask::emitAborted(
- const QUrl& requestUrl) {
+ QUrl&& requestUrl) {
VERIFY_OR_DEBUG_ASSERT(
isSignalFuncConnected(&NetworkTask::networkError)) {
kLogger.warning()
diff --git a/src/network/networktask.h b/src/network/networktask.h
index 1679b5cc02..4721fd2e98 100644
--- a/src/network/networktask.h
+++ b/src/network/networktask.h
@@ -49,8 +49,11 @@ class NetworkTask : public QObject {
return isSignalConnected(signal);
}
+ /// Send an aborted signal with the optional request URL if available.
void emitAborted(
- const QUrl& requestUrl);
+ QUrl&& requestUrl = QUrl{});
+
+ /// Send a signal after an aborted/timed out/failed network response.
void emitNetworkError(
QUrl&& requestUrl,
QNetworkReply::NetworkError errorCode,
@@ -89,8 +92,12 @@ class NetworkTask : public QObject {
/// in memory as a dysfunctional zombie until its parent object
/// is finally deleted. If no receiver is connected the task
/// will be deleted implicitly.
+
+ /// Client-side abort
void aborted(
const QUrl& requestUrl);
+
+ /// Network or server-side abort/timeout/failure
void networkError(
const QUrl& requestUrl,
QNetworkReply::NetworkError errorCode,
diff --git a/src/network/webtask.cpp b/src/network/webtask.cpp
index c3d0530d2d..8b8d0bec5d 100644
--- a/src/network/webtask.cpp
+++ b/src/network/webtask.cpp
@@ -138,6 +138,8 @@ void WebTask::slotStart(int timeoutMillis) {
if (!m_pendingNetworkReplyWeakPtr) {
kLogger.debug()
<< "Network task has not been started";
+ m_state = State::Aborted;
+ emitAborted();
return;
}
m_state = State::Pending;
@@ -185,8 +187,7 @@ void WebTask::slotAbort() {
}
doNetworkReplyAborted(pPendingNetworkReply);
m_state = State::Aborted;
- const auto requestUrl = pPendingNetworkReply->request().url();
- emitAborted(requestUrl);
+ emitAborted(pPendingNetworkReply->request().url());
}
void WebTask::timerEvent(QTimerEvent* event) {
@@ -266,8 +267,7 @@ void WebTask::slotNetworkReplyFinished() {
<< "Discarding obsolete network reply"
<< pFinishedNetworkReply;
if (m_state == State::Aborting) {
- const auto requestUrl = pPendingNetworkReply->request().url();
- emitAborted(requestUrl);
+ emitAborted(pPendingNetworkReply->request().url());
} else {
// The request might have been aborted or timed out in the meantime.
// The task is supposed to be in a final state at this point and a