In a way, sequential tasks are just concurrent tasks with only a single
task running concurrently, so we can remove LOTS of duplicated logic :)
Signed-off-by: flow <flowlnlnln@gmail.com>
Previously, it would not update the global counter if the subTask didn't
update its progress, even though progress was being made.
This also prevents a segmentation fault while aborting the task.
Signed-off-by: flow <flowlnlnln@gmail.com>
This puts all mod downloading tasks inside a SequentialTask, which is,
for more than one task, a multi step task. This is handled by the
ProgressDialog by showing both the global progress of tasks executed,
and the individual progress of each of them.