NOISSUE refactor NetAction to be based on Task

Still missing some things, this is part 1.
This commit is contained in:
Petr Mrázek
2017-04-29 02:24:00 +02:00
parent 243f7e4fb4
commit e1465f4848
42 changed files with 299 additions and 314 deletions

View File

@ -42,7 +42,7 @@ void SequentialTask::subTaskFailed(const QString &msg)
}
void SequentialTask::subTaskStatus(const QString &msg)
{
setStatus(msg);
setStatusText(msg);
}
void SequentialTask::subTaskProgress(qint64 current, qint64 total)
{

View File

@ -21,12 +21,12 @@ Task::Task(QObject *parent) : QObject(parent)
{
}
void Task::setStatus(const QString &new_status)
void Task::setStatusText(const QString &new_status)
{
if(m_status != new_status)
if(m_statusText != new_status)
{
m_status = new_status;
emit status(m_status);
m_statusText = new_status;
emit status(m_statusText);
}
}

View File

@ -23,6 +23,16 @@
class MULTIMC_LOGIC_EXPORT Task : public QObject
{
Q_OBJECT
public:
enum class Status
{
NotStarted,
InProgress,
Finished,
Failed,
Aborted,
Failed_Proceed
};
public:
explicit Task(QObject *parent = 0);
virtual ~Task() {};
@ -43,19 +53,22 @@ public:
*/
virtual QString failReason() const;
virtual bool canAbort() const { return false; }
QString getStatus()
virtual bool canAbort() const
{
return m_status;
return false;
}
qint64 getProgress()
QString getStatusText()
{
return m_statusText;
}
virtual qint64 getProgress()
{
return m_progress;
}
qint64 getTotalProgress()
virtual qint64 getTotalProgress()
{
return m_progressTotal;
}
@ -68,10 +81,12 @@ signals:
void failed(QString reason);
void status(QString status);
public
slots:
public slots:
virtual void start();
virtual bool abort() { return false; };
virtual bool abort()
{
return false;
};
protected:
virtual void executeTask() = 0;
@ -81,7 +96,7 @@ protected slots:
virtual void emitFailed(QString reason);
public slots:
void setStatus(const QString &status);
void setStatusText(const QString &status);
void setProgress(qint64 current, qint64 total);
protected:
@ -89,8 +104,9 @@ protected:
bool m_finished = false;
bool m_succeeded = false;
QString m_failReason = "";
QString m_status;
int m_progress = 0;
int m_progressTotal = 100;
QString m_statusText;
qint64 m_progress = 0;
qint64 m_progressTotal = 1;
};

View File

@ -32,7 +32,7 @@ void ThreadTask::iternal_started()
void ThreadTask::iternal_status(QString status)
{
setStatus(status);
setStatusText(status);
}
void ThreadTask::iternal_succeeded()