| 153 | } |
| 154 | |
| 155 | void ConcurrentTask::subTaskFinished(Task::Ptr task, TaskStepState state) |
| 156 | { |
| 157 | m_done.insert(task.get(), task); |
| 158 | (state == TaskStepState::Succeeded ? m_succeeded : m_failed).insert(task.get(), task); |
| 159 | |
| 160 | m_doing.remove(task.get()); |
| 161 | |
| 162 | auto task_progress = *m_task_progress.value(task->getUid()); |
| 163 | task_progress.state = state; |
| 164 | m_task_progress.remove(task->getUid()); |
| 165 | |
| 166 | disconnect(task.get(), 0, this, 0); |
| 167 | |
| 168 | emit stepProgress(task_progress); |
| 169 | updateState(); |
| 170 | QMetaObject::invokeMethod(this, &ConcurrentTask::executeNextSubTask, Qt::QueuedConnection); |
| 171 | } |
| 172 | |
| 173 | void ConcurrentTask::subTaskSucceeded(Task::Ptr task) |
| 174 | { |