21 #include "postjobaction.h"
23 #include <QModelIndex>
30 class AbstractJob :
public QProcess
34 explicit AbstractJob(
const QString& name);
35 virtual ~AbstractJob() {}
37 void setStandardItem(QStandardItem* item);
38 QStandardItem* standardItem();
41 void appendToLog(
const QString&);
43 QString label()
const {
return m_label; }
44 void setLabel(
const QString& label);
45 QList<QAction*> standardActions()
const {
return m_standardActions; }
46 QList<QAction*> successActions()
const {
return m_successActions; }
47 QTime estimateRemaining(
int percent);
48 QTime time()
const {
return m_totalTime; }
49 void setPostJobAction(PostJobAction* action);
52 void start(
const QString &program,
const QStringList &arguments);
57 void progressUpdated(QStandardItem* item,
int percent);
58 void finished(AbstractJob* job,
bool isSuccess, QString failureTime = QString());
61 QList<QAction*> m_standardActions;
62 QList<QAction*> m_successActions;
63 QStandardItem* m_item;
66 virtual void onFinished(
int exitCode, QProcess::ExitStatus exitStatus = QProcess::NormalExit);
67 virtual void onReadyRead();
68 virtual void onStarted();
71 void onProgressUpdated(QStandardItem*,
int percent);
79 int m_startingPercent;
81 QScopedPointer<PostJobAction> m_postJobAction;