From e1465f4848d003cab3d3d1288c1a0f3b945083ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 29 Apr 2017 02:24:00 +0200 Subject: NOISSUE refactor NetAction to be based on Task Still missing some things, this is part 1. --- api/logic/tasks/SequentialTask.cpp | 2 +- api/logic/tasks/Task.cpp | 8 ++++---- api/logic/tasks/Task.h | 40 ++++++++++++++++++++++++++------------ api/logic/tasks/ThreadTask.cpp | 2 +- 4 files changed, 34 insertions(+), 18 deletions(-) (limited to 'api/logic/tasks') diff --git a/api/logic/tasks/SequentialTask.cpp b/api/logic/tasks/SequentialTask.cpp index ac0e7820..bcf69a0d 100644 --- a/api/logic/tasks/SequentialTask.cpp +++ b/api/logic/tasks/SequentialTask.cpp @@ -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) { diff --git a/api/logic/tasks/Task.cpp b/api/logic/tasks/Task.cpp index 23ee08e4..4e468b04 100644 --- a/api/logic/tasks/Task.cpp +++ b/api/logic/tasks/Task.cpp @@ -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); } } diff --git a/api/logic/tasks/Task.h b/api/logic/tasks/Task.h index 47c4a13e..9bc2781f 100644 --- a/api/logic/tasks/Task.h +++ b/api/logic/tasks/Task.h @@ -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; } + virtual bool canAbort() const + { + return false; + } - QString getStatus() + QString getStatusText() { - return m_status; + return m_statusText; } - qint64 getProgress() + 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; }; diff --git a/api/logic/tasks/ThreadTask.cpp b/api/logic/tasks/ThreadTask.cpp index ddd1dee5..6f9ce13e 100644 --- a/api/logic/tasks/ThreadTask.cpp +++ b/api/logic/tasks/ThreadTask.cpp @@ -32,7 +32,7 @@ void ThreadTask::iternal_started() void ThreadTask::iternal_status(QString status) { - setStatus(status); + setStatusText(status); } void ThreadTask::iternal_succeeded() -- cgit v1.2.3