aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'launcher')
-rw-r--r--launcher/net/Download.cpp9
-rw-r--r--launcher/net/NetJob.cpp3
-rw-r--r--launcher/tasks/Task.cpp1
-rw-r--r--launcher/tasks/Task.h2
4 files changed, 11 insertions, 4 deletions
diff --git a/launcher/net/Download.cpp b/launcher/net/Download.cpp
index 3d6ca338..9c01fa8d 100644
--- a/launcher/net/Download.cpp
+++ b/launcher/net/Download.cpp
@@ -69,6 +69,8 @@ void Download::addValidator(Validator* v)
void Download::executeTask()
{
+ setStatus(tr("Downloading %1").arg(m_url.toString()));
+
if (getState() == Task::State::AbortedByUser) {
qWarning() << "Attempt to start an aborted Download:" << m_url.toString();
emitAborted();
@@ -90,6 +92,7 @@ void Download::executeTask()
emitFailed();
return;
case State::AbortedByUser:
+ emitAborted();
return;
}
@@ -216,13 +219,13 @@ void Download::downloadFinished()
qDebug() << "Download failed in previous step:" << m_url.toString();
m_sink->abort();
m_reply.reset();
- emitFailed();
+ emit failed("");
return;
} else if (m_state == State::AbortedByUser) {
qDebug() << "Download aborted in previous step:" << m_url.toString();
m_sink->abort();
m_reply.reset();
- emitAborted();
+ emit aborted();
return;
}
@@ -239,7 +242,7 @@ void Download::downloadFinished()
qDebug() << "Download failed to finalize:" << m_url.toString();
m_sink->abort();
m_reply.reset();
- emitFailed();
+ emit failed("");
return;
}
diff --git a/launcher/net/NetJob.cpp b/launcher/net/NetJob.cpp
index a9f89da4..906a735f 100644
--- a/launcher/net/NetJob.cpp
+++ b/launcher/net/NetJob.cpp
@@ -47,7 +47,9 @@ auto NetJob::addNetAction(NetAction::Ptr action) -> bool
if (action->isRunning()) {
connect(action.get(), &NetAction::succeeded, [this, action]{ partSucceeded(action->index()); });
connect(action.get(), &NetAction::failed, [this, action](QString){ partFailed(action->index()); });
+ connect(action.get(), &NetAction::aborted, [this, action](){ partAborted(action->index()); });
connect(action.get(), &NetAction::progress, [this, action](qint64 done, qint64 total) { partProgress(action->index(), done, total); });
+ connect(action.get(), &NetAction::status, this, &NetJob::status);
} else {
m_todo.append(m_parts_progress.size() - 1);
}
@@ -222,6 +224,7 @@ void NetJob::startMoreParts()
connect(part.get(), &NetAction::failed, this, [this, part](QString){ partFailed(part->index()); });
connect(part.get(), &NetAction::aborted, this, [this, part]{ partAborted(part->index()); });
connect(part.get(), &NetAction::progress, this, [this, part](qint64 done, qint64 total) { partProgress(part->index(), done, total); });
+ connect(part.get(), &NetAction::status, this, &NetJob::status);
part->startAction(m_network);
}
diff --git a/launcher/tasks/Task.cpp b/launcher/tasks/Task.cpp
index 68e0e8a7..d2d62c9e 100644
--- a/launcher/tasks/Task.cpp
+++ b/launcher/tasks/Task.cpp
@@ -100,6 +100,7 @@ void Task::emitAborted()
m_failReason = "Aborted.";
qDebug() << "Task" << describe() << "aborted.";
emit aborted();
+ emit finished();
}
void Task::emitSucceeded()
diff --git a/launcher/tasks/Task.h b/launcher/tasks/Task.h
index e09c57ae..0ca37e02 100644
--- a/launcher/tasks/Task.h
+++ b/launcher/tasks/Task.h
@@ -79,7 +79,7 @@ class Task : public QObject {
public slots:
virtual void start();
- virtual bool abort() { return false; };
+ virtual bool abort() { if(canAbort()) emitAborted(); return canAbort(); };
protected:
virtual void executeTask() = 0;