| 73 | } |
| 74 | |
| 75 | void Task::start() |
| 76 | { |
| 77 | switch (m_state) { |
| 78 | case State::Inactive: { |
| 79 | if (m_show_debug) |
| 80 | qCDebug(taskLogC) << "Task" << describe() << "starting for the first time"; |
| 81 | break; |
| 82 | } |
| 83 | case State::AbortedByUser: { |
| 84 | if (m_show_debug) |
| 85 | qCDebug(taskLogC) << "Task" << describe() << "restarting for after being aborted by user"; |
| 86 | break; |
| 87 | } |
| 88 | case State::Failed: { |
| 89 | if (m_show_debug) |
| 90 | qCDebug(taskLogC) << "Task" << describe() << "restarting for after failing at first"; |
| 91 | break; |
| 92 | } |
| 93 | case State::Succeeded: { |
| 94 | if (m_show_debug) |
| 95 | qCDebug(taskLogC) << "Task" << describe() << "restarting for after succeeding at first"; |
| 96 | break; |
| 97 | } |
| 98 | case State::Running: { |
| 99 | if (m_show_debug) |
| 100 | qCWarning(taskLogC) << "The launcher tried to start task" << describe() << "while it was already running!"; |
| 101 | return; |
| 102 | } |
| 103 | } |
| 104 | // NOTE: only fall through to here in end states |
| 105 | m_state = State::Running; |
| 106 | emit started(); |
| 107 | executeTask(); |
| 108 | } |
| 109 | |
| 110 | void Task::emitFailed(QString reason) |
| 111 | { |
no outgoing calls