From e76e6329cdf4f1613c6303debd3ca43493147f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Wed, 3 May 2017 23:11:52 +0200 Subject: NOISSUE Revert all recent changes to NetAction and NetJob --- api/logic/net/NetAction.h | 71 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 10 deletions(-) (limited to 'api/logic/net/NetAction.h') diff --git a/api/logic/net/NetAction.h b/api/logic/net/NetAction.h index 667484d1..a533c317 100644 --- a/api/logic/net/NetAction.h +++ b/api/logic/net/NetAction.h @@ -15,8 +15,6 @@ #pragma once -#include "tasks/Task.h" - #include #include #include @@ -25,29 +23,82 @@ #include "multimc_logic_export.h" -typedef shared_qobject_ptr NetActionPtr; -class MULTIMC_LOGIC_EXPORT NetAction : public Task +enum JobStatus +{ + Job_NotStarted, + Job_InProgress, + Job_Finished, + Job_Failed, + Job_Aborted, + Job_Failed_Proceed +}; + +typedef std::shared_ptr NetActionPtr; +class MULTIMC_LOGIC_EXPORT NetAction : public QObject { Q_OBJECT protected: - explicit NetAction(QObject *parent = 0) : Task(parent) {}; + explicit NetAction() : QObject(0) {}; public: virtual ~NetAction() {}; public: + virtual qint64 totalProgress() const + { + return m_total_progress; + } + virtual qint64 currentProgress() const + { + return m_progress; + } + virtual qint64 numberOfFailures() const + { + return m_failures; + } + virtual bool abort() + { + return false; + } + virtual bool canAbort() + { + return false; + } + +public: + /// the network reply unique_qobject_ptr m_reply; + + /// source URL QUrl m_url; - // FIXME: pull this up into Task - Status m_status = Status::NotStarted; + + /// The file's status + JobStatus m_status = Job_NotStarted; + + /// index within the parent job + int m_index_within_job = 0; + + qint64 m_progress = 0; + qint64 m_total_progress = 1; + + /// number of failures up to this point + int m_failures = 0; signals: - void failed(); - void aborted(); + void started(int index); + void netActionProgress(int index, qint64 current, qint64 total); + void succeeded(int index); + void failed(int index); + void aborted(int index); -protected slots: +protected +slots: virtual void downloadProgress(qint64 bytesReceived, qint64 bytesTotal) = 0; virtual void downloadError(QNetworkReply::NetworkError error) = 0; virtual void downloadFinished() = 0; virtual void downloadReadyRead() = 0; + +public +slots: + virtual void start() = 0; }; -- cgit v1.2.3