NOISSUE refactor NetAction to be based on Task
Still missing some things, this is part 1.
This commit is contained in:
		@@ -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)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ void ThreadTask::iternal_started()
 | 
			
		||||
 | 
			
		||||
void ThreadTask::iternal_status(QString status)
 | 
			
		||||
{
 | 
			
		||||
	setStatus(status);
 | 
			
		||||
	setStatusText(status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ThreadTask::iternal_succeeded()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user