#pragma once #include "QObjectPtr.h" #include "tasks/Task.h" #include "minecraft/mod/ModFolderModel.h" #include "net/NetJob.h" #include class ModDownloadTask : public Task { Q_OBJECT public: explicit ModDownloadTask(const QUrl sourceUrl, const QString filename, const std::shared_ptr mods); const QString& getFilename() const { return filename; } public slots: bool abort() override; protected: //! Entry point for tasks. void executeTask() override; private: QUrl m_sourceUrl; NetJob::Ptr m_filesNetJob; const std::shared_ptr mods; const QString filename; void downloadProgressChanged(qint64 current, qint64 total); void downloadFailed(QString reason); void downloadSucceeded(); };