aboutsummaryrefslogtreecommitdiff
path: root/launcher/ModDownloadTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ModDownloadTask.h')
-rw-r--r--launcher/ModDownloadTask.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/launcher/ModDownloadTask.h b/launcher/ModDownloadTask.h
new file mode 100644
index 00000000..7e4f1b7d
--- /dev/null
+++ b/launcher/ModDownloadTask.h
@@ -0,0 +1,34 @@
+#pragma once
+#include "QObjectPtr.h"
+#include "tasks/Task.h"
+#include "minecraft/mod/ModFolderModel.h"
+#include "net/NetJob.h"
+#include <QUrl>
+
+
+class ModDownloadTask : public Task {
+ Q_OBJECT
+public:
+ explicit ModDownloadTask(const QUrl sourceUrl, const QString filename, const std::shared_ptr<ModFolderModel> mods);
+
+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<ModFolderModel> mods;
+ const QString filename;
+
+ void downloadProgressChanged(qint64 current, qint64 total);
+
+ void downloadFailed(QString reason);
+
+ void downloadSucceeded();
+};
+
+
+