From 042f3ef55c0b469f438542152c4eb02b0789ea3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 14 Aug 2016 02:33:31 +0200 Subject: GH-352 Make OneSix instance update downloads cancellable --- api/logic/minecraft/onesix/OneSixUpdate.h | 36 ++++++++++--------------------- 1 file changed, 11 insertions(+), 25 deletions(-) (limited to 'api/logic/minecraft/onesix/OneSixUpdate.h') diff --git a/api/logic/minecraft/onesix/OneSixUpdate.h b/api/logic/minecraft/onesix/OneSixUpdate.h index b5195364..3780ef2e 100644 --- a/api/logic/minecraft/onesix/OneSixUpdate.h +++ b/api/logic/minecraft/onesix/OneSixUpdate.h @@ -32,36 +32,22 @@ class OneSixUpdate : public Task Q_OBJECT public: explicit OneSixUpdate(OneSixInstance *inst, QObject *parent = 0); - virtual void executeTask(); + void executeTask() override; + bool canAbort() const override; private slots: - void versionUpdateFailed(QString reason); - - void jarlibStart(); - void jarlibFinished(); - void jarlibFailed(QString reason); - - void fmllibsStart(); - void fmllibsFinished(); - void fmllibsFailed(QString reason); - - void assetIndexStart(); - void assetIndexFinished(); - void assetIndexFailed(QString reason); - - void assetsFinished(); - void assetsFailed(QString reason); + bool abort() override; + void subtaskSucceeded(); + void subtaskFailed(QString error); private: - NetJobPtr jarlibDownloadJob; - NetJobPtr legacyDownloadJob; - - /// target version, determined during this task - std::shared_ptr targetVersion; - /// the task that is spawned for version updates - std::shared_ptr versionUpdateTask; + void next(); +private: OneSixInstance *m_inst = nullptr; - QList fmlLibsToProcess; + QList> m_tasks; + QString m_preFailure; + int m_currentTask = -1; + bool m_abort = false; }; -- cgit v1.2.3