| 211 | } |
| 212 | |
| 213 | void |
| 214 | ProgressTaskInfo::cancelTask(bool calledFromRenderEngine, |
| 215 | int retCode) |
| 216 | { |
| 217 | if (_imp->refreshLabelTimer) { |
| 218 | _imp->refreshLabelTimer->stop(); |
| 219 | } |
| 220 | |
| 221 | if ( _imp->panel->getGui() && _imp->panel->getGui()->isGUIFrozen() && appPTR->getCurrentSettings()->isAutoTurboEnabled() ) { |
| 222 | _imp->panel->getGui()->onFreezeUIButtonClicked(false); |
| 223 | } |
| 224 | |
| 225 | if (calledFromRenderEngine) { |
| 226 | _imp->panel->getGui()->ensureProgressPanelVisible(); |
| 227 | _imp->panel->onLastTaskAddedFinished(this); |
| 228 | } else { |
| 229 | if (_imp->lastWidgetCurrentWhenShowingProgressDialog) { |
| 230 | _imp->lastWidgetCurrentWhenShowingProgressDialog->getParentPane()->setCurrentWidget(_imp->lastWidgetCurrentWhenShowingProgressDialog); |
| 231 | _imp->lastWidgetCurrentWhenShowingProgressDialog = 0; |
| 232 | } |
| 233 | } |
| 234 | |
| 235 | { |
| 236 | QMutexLocker k(&_imp->canceledMutex); |
| 237 | if (_imp->canceled) { |
| 238 | return; |
| 239 | } |
| 240 | _imp->canceled = true; |
| 241 | } |
| 242 | if (_imp->timeRemainingItem) { |
| 243 | _imp->timeRemainingItem->setText( tr("N/A") ); |
| 244 | } |
| 245 | if (_imp->statusItem) { |
| 246 | if (!calledFromRenderEngine) { |
| 247 | _imp->statusItem->setTextColor( QColor(243, 147, 0) ); |
| 248 | if (_imp->canBePaused) { |
| 249 | _imp->statusItem->setText( tr("Paused") ); |
| 250 | _imp->status = eProgressTaskStatusPaused; |
| 251 | updateTaskBarState(retCode == 1 ? TaskBar::PausedProgress : TaskBar::NoProgress); |
| 252 | } else { |
| 253 | _imp->statusItem->setText( tr("Canceled") ); |
| 254 | _imp->status = eProgressTaskStatusCanceled; |
| 255 | updateTaskBarState(TaskBar::NoProgress); |
| 256 | } |
| 257 | } else { |
| 258 | if (retCode == 0) { |
| 259 | _imp->statusItem->setTextColor(Qt::black); |
| 260 | _imp->statusItem->setText( tr("Finished") ); |
| 261 | _imp->status = eProgressTaskStatusFinished; |
| 262 | if (_imp->progressBar) { |
| 263 | _imp->progressBar->setValue(100); |
| 264 | } |
| 265 | updateTaskBarState(TaskBar::NormalProgress); |
| 266 | } else { |
| 267 | _imp->statusItem->setTextColor(Qt::red); |
| 268 | _imp->statusItem->setText( tr("Failed") ); |
| 269 | _imp->status = eProgressTaskStatusFinished; |
| 270 | updateTaskBarState(TaskBar::ErrorProgress); |
no test coverage detected