feat: Propogated subtask progress

Oh boy this is big.

> TaskStepProgress struct is now QMetaObject compatabile and can be sent through signals
> Task now has a method to propogates sub task progress it must be signal bound by each task containing a task wishing to report progress of it's children.
> Downloads report speed
> Tasks now have UUIDS to track them
  - use when reporting
  - use when logging
  - use when storeing them or objects related to them

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
Rachel Powers
2023-03-30 23:50:29 -07:00
parent f997529cd4
commit 9d2f0e4dc8
25 changed files with 275 additions and 103 deletions

View File

@ -18,8 +18,8 @@ public:
bool canAbort() const override { return true; }
inline auto isMultiStep() const -> bool override { return m_queue.size() > 1; };
auto getStepProgress() const -> QList<TaskStepProgress> override;
inline auto isMultiStep() const -> bool override { return totalSize() > 1; };
auto getStepProgress() const -> TaskStepProgressList override;
void addTask(Task::Ptr task);
@ -41,7 +41,7 @@ slots:
void subTaskFailed(Task::Ptr, const QString &msg);
void subTaskStatus(Task::Ptr task, const QString &msg);
void subTaskProgress(Task::Ptr task, qint64 current, qint64 total);
void subTaskStepProgress(Task::Ptr task, QList<TaskStepProgress> task_step_progress);
void subTaskStepProgress(Task::Ptr task, TaskStepProgressList task_step_progress);
protected:
// NOTE: This is not thread-safe.