+ if(createJob(sourceFileName, outputFileName, m_options.data(), runImmediately))
+ {
+ appendJob(sourceFileName, outputFileName, m_options.data(), runImmediately);
+ }
+ }
+ }
+}
+
+/*
+* The "clean-up" action was invoked
+*/
+void MainWindow::cleanupActionTriggered(void)
+{
+ ENSURE_APP_IS_READY();
+
+ QAction *const sender = dynamic_cast<QAction*>(QObject::sender());
+ if (sender)
+ {
+ const QVariant data = sender->data();
+ if (data.isValid() && (data.type() == QVariant::Bool))
+ {
+ const bool mode = data.toBool();
+ const int rows = m_jobList->rowCount(QModelIndex());
+ QList<int> jobIndices;
+ for (int i = 0; i < rows; i++)
+ {
+ const JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
+ if (mode && (status == JobStatus_Enqueued))
+ {
+ jobIndices.append(i);
+ }
+ else if ((!mode) && ((status == JobStatus_Completed) || (status == JobStatus_Aborted) || (status == JobStatus_Failed)))
+ {
+ jobIndices.append(i);
+ }
+ }
+ if (!jobIndices.isEmpty())
+ {
+ QListIterator<int> iter(jobIndices);
+ iter.toBack();
+ while(iter.hasPrevious())
+ {
+ m_jobList->deleteJob(m_jobList->index(iter.previous(), 0, QModelIndex()));
+ }
+ }
+ else
+ {
+ MUtils::Sound::beep(MUtils::Sound::BEEP_WRN);
+ }
+ }
+ }
+}
+
+/*
+* The "clean-up" action was invoked
+*/
+void MainWindow::postOpActionTriggered(void)
+{
+ ENSURE_APP_IS_READY();
+
+ QAction *const sender = dynamic_cast<QAction*>(QObject::sender());
+ if (sender)
+ {
+ const QVariant data = sender->data();
+ if (data.isValid() && (data.type() == QVariant::Int))
+ {
+ const postOp_t mode = (postOp_t)data.toInt();
+ if ((mode >= POST_OP_DONOTHING) && (mode <= POST_OP_HIBERNATE))