bool MainWindow::beforeCloseCheckRunningJobs() { auto tool = jobTool(); if (!tool) return true; auto model = tool->model(); if (!model->hasRunningJobs()) return true; if ( Util::Settings::get().m_warnBeforeAbortingJobs && (Util::MessageBox::question(this) ->title(QY("Abort running jobs")) .text(Q("%1 %2").arg(QY("There is currently a job running.")).arg(QY("Do you really want to abort all currently running jobs?"))) .buttonLabel(QMessageBox::Yes, QY("&Abort jobs")) .buttonLabel(QMessageBox::No, QY("Cancel")) .exec()) == QMessageBox::No) return false; model->stop(); model->withAllJobs([](Jobs::Job &job) { if (Jobs::Job::Running == job.status()) { job.setQuitAfterFinished(true); job.abort(); } }); return false; }
bool MainWindow::beforeCloseCheckRunningJobs() { auto tool = jobTool(); if (!tool) return true; auto model = tool->model(); if (!model->hasRunningJobs()) return true; if ( Util::Settings::get().m_warnBeforeAbortingJobs && Util::MessageBox::question(this, QY("Abort running jobs"), Q("%1 %2").arg(QY("There is currently a job running.")).arg(QY("Do you want to abort that job and quit?"))) == QMessageBox::No) return false; model->stop(); model->withAllJobs([](Jobs::Job &job) { if (Jobs::Job::Running == job.m_status) { job.m_quitAfterFinished = true; job.abort(); } }); return false; }