aboutsummaryrefslogtreecommitdiff
path: root/launcher/tasks
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-08-15 12:49:21 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-08-15 12:49:21 +0300
commitcf27d2f9ab206e24f7dfd909a88d7db48fd0a74a (patch)
tree63675a840a90712b8b1468e87569fade7b11deb6 /launcher/tasks
parentb2fdd8359405c93d0d93aa8c68971c986a1f68cb (diff)
parent8f5bb982cd27dd9158b63d826769c168455a139b (diff)
downloadPrismLauncher-cf27d2f9ab206e24f7dfd909a88d7db48fd0a74a.tar.gz
PrismLauncher-cf27d2f9ab206e24f7dfd909a88d7db48fd0a74a.tar.bz2
PrismLauncher-cf27d2f9ab206e24f7dfd909a88d7db48fd0a74a.zip
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into download_threads
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/tasks')
-rw-r--r--launcher/tasks/ConcurrentTask.cpp4
-rw-r--r--launcher/tasks/ConcurrentTask.h4
-rw-r--r--launcher/tasks/Task.h12
3 files changed, 12 insertions, 8 deletions
diff --git a/launcher/tasks/ConcurrentTask.cpp b/launcher/tasks/ConcurrentTask.cpp
index 88492346..6cfd864c 100644
--- a/launcher/tasks/ConcurrentTask.cpp
+++ b/launcher/tasks/ConcurrentTask.cpp
@@ -88,6 +88,7 @@ bool ConcurrentTask::abort()
QMutableHashIterator<Task*, Task::Ptr> doing_iter(m_doing);
while (doing_iter.hasNext()) {
auto task = doing_iter.next();
+ disconnect(task->get(), &Task::aborted, this, 0);
suceedeed &= (task.value())->abort();
}
@@ -130,6 +131,7 @@ void ConcurrentTask::startNext()
connect(next.get(), &Task::succeeded, this, [this, next]() { subTaskSucceeded(next); });
connect(next.get(), &Task::failed, this, [this, next](QString msg) { subTaskFailed(next, msg); });
+ connect(next.get(), &Task::aborted, this, [this, next] { subTaskFailed(next, "Aborted"); });
connect(next.get(), &Task::status, this, [this, next](QString msg) { subTaskStatus(next, msg); });
connect(next.get(), &Task::details, this, [this, next](QString msg) { subTaskDetails(next, msg); });
@@ -171,7 +173,7 @@ void ConcurrentTask::subTaskSucceeded(Task::Ptr task)
startNext();
}
-void ConcurrentTask::subTaskFailed(Task::Ptr task, const QString& msg)
+void ConcurrentTask::subTaskFailed(Task::Ptr task, [[maybe_unused]] const QString& msg)
{
m_done.insert(task.get(), task);
m_failed.insert(task.get(), task);
diff --git a/launcher/tasks/ConcurrentTask.h b/launcher/tasks/ConcurrentTask.h
index 1c333ce0..00b1d48d 100644
--- a/launcher/tasks/ConcurrentTask.h
+++ b/launcher/tasks/ConcurrentTask.h
@@ -56,7 +56,7 @@ class ConcurrentTask : public Task {
bool canAbort() const override { return true; }
- inline auto isMultiStep() const -> bool override { return totalSize() > 1; };
+ inline auto isMultiStep() const -> bool override { return totalSize() > 1; }
auto getStepProgress() const -> TaskStepProgressList override;
void addTask(Task::Ptr task);
@@ -83,7 +83,7 @@ class ConcurrentTask : public Task {
protected:
// NOTE: This is not thread-safe.
- [[nodiscard]] unsigned int totalSize() const { return m_queue.size() + m_doing.size() + m_done.size(); }
+ [[nodiscard]] unsigned int totalSize() const { return static_cast<unsigned int>(m_queue.size() + m_doing.size() + m_done.size()); }
enum class Operation { ADDED, REMOVED, CHANGED };
void updateStepProgress(TaskStepProgress const& changed_progress, Operation);
diff --git a/launcher/tasks/Task.h b/launcher/tasks/Task.h
index 7e1defd8..94b4089f 100644
--- a/launcher/tasks/Task.h
+++ b/launcher/tasks/Task.h
@@ -59,16 +59,18 @@ struct TaskStepProgress {
QString status = "";
QString details = "";
TaskStepState state = TaskStepState::Waiting;
+
TaskStepProgress() { this->uid = QUuid::createUuid(); }
- TaskStepProgress(QUuid uid) { this->uid = uid; }
+ TaskStepProgress(QUuid uid_) : uid(uid_) {}
+
bool isDone() const { return (state == TaskStepState::Failed) || (state == TaskStepState::Succeeded); }
- void update(qint64 current, qint64 total)
+ void update(qint64 new_current, qint64 new_total)
{
this->old_current = this->current;
this->old_total = this->total;
- this->current = current;
- this->total = total;
+ this->current = new_current;
+ this->total = new_total;
this->state = TaskStepState::Running;
}
};
@@ -150,7 +152,7 @@ class Task : public QObject, public QRunnable {
if (canAbort())
emitAborted();
return canAbort();
- };
+ }
void setAbortable(bool can_abort)
{