aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/CheckUpdateTask.h
diff options
context:
space:
mode:
authorkumquat-ir <66188216+kumquat-ir@users.noreply.github.com>2022-07-18 14:05:23 -0400
committerkumquat-ir <66188216+kumquat-ir@users.noreply.github.com>2022-07-18 14:05:23 -0400
commit20b1723e78149c1f2ac4072cbd46997e9c5160fa (patch)
tree7d97c8bc2edfe5cb41b91e6d04ba36da8aa163e6 /launcher/modplatform/CheckUpdateTask.h
parentbe78afeee54a19cd0115e1d2ec63f3a3201a3940 (diff)
parentdec81c4f274dd8388d442062cf9fa18600aa850d (diff)
downloadPrismLauncher-20b1723e78149c1f2ac4072cbd46997e9c5160fa.tar.gz
PrismLauncher-20b1723e78149c1f2ac4072cbd46997e9c5160fa.tar.bz2
PrismLauncher-20b1723e78149c1f2ac4072cbd46997e9c5160fa.zip
merge origin/develop
Signed-off-by: kumquat-ir <66188216+kumquat-ir@users.noreply.github.com>
Diffstat (limited to 'launcher/modplatform/CheckUpdateTask.h')
-rw-r--r--launcher/modplatform/CheckUpdateTask.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/launcher/modplatform/CheckUpdateTask.h b/launcher/modplatform/CheckUpdateTask.h
new file mode 100644
index 00000000..91922034
--- /dev/null
+++ b/launcher/modplatform/CheckUpdateTask.h
@@ -0,0 +1,51 @@
+#pragma once
+
+#include "minecraft/mod/Mod.h"
+#include "modplatform/ModAPI.h"
+#include "modplatform/ModIndex.h"
+#include "tasks/Task.h"
+
+class ModDownloadTask;
+class ModFolderModel;
+
+class CheckUpdateTask : public Task {
+ Q_OBJECT
+
+ public:
+ CheckUpdateTask(QList<Mod*>& mods, std::list<Version>& mcVersions, ModAPI::ModLoaderTypes loaders, std::shared_ptr<ModFolderModel> mods_folder)
+ : Task(nullptr), m_mods(mods), m_game_versions(mcVersions), m_loaders(loaders), m_mods_folder(mods_folder) {};
+
+ struct UpdatableMod {
+ QString name;
+ QString old_hash;
+ QString old_version;
+ QString new_version;
+ QString changelog;
+ ModPlatform::Provider provider;
+ ModDownloadTask* download;
+
+ public:
+ UpdatableMod(QString name, QString old_h, QString old_v, QString new_v, QString changelog, ModPlatform::Provider p, ModDownloadTask* t)
+ : name(name), old_hash(old_h), old_version(old_v), new_version(new_v), changelog(changelog), provider(p), download(t)
+ {}
+ };
+
+ auto getUpdatable() -> std::vector<UpdatableMod>&& { return std::move(m_updatable); }
+
+ public slots:
+ bool abort() override = 0;
+
+ protected slots:
+ void executeTask() override = 0;
+
+ signals:
+ void checkFailed(Mod* failed, QString reason, QUrl recover_url = {});
+
+ protected:
+ QList<Mod*>& m_mods;
+ std::list<Version>& m_game_versions;
+ ModAPI::ModLoaderTypes m_loaders;
+ std::shared_ptr<ModFolderModel> m_mods_folder;
+
+ std::vector<UpdatableMod> m_updatable;
+};