aboutsummaryrefslogtreecommitdiff
path: root/api/logic/modplatform/legacy_ftb/PackFetchTask.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2019-11-03 23:48:12 +0100
committerPetr Mrázek <peterix@gmail.com>2019-11-03 23:48:12 +0100
commit47ed2f48d4a118876263f37b9fe2ab8911c2a8fe (patch)
tree3caa2000d3fe9f57a82757dec2ae138e7474c499 /api/logic/modplatform/legacy_ftb/PackFetchTask.h
parent0c9340a3d2e32223a9097f95b92b11045aaec845 (diff)
downloadPrismLauncher-47ed2f48d4a118876263f37b9fe2ab8911c2a8fe.tar.gz
PrismLauncher-47ed2f48d4a118876263f37b9fe2ab8911c2a8fe.tar.bz2
PrismLauncher-47ed2f48d4a118876263f37b9fe2ab8911c2a8fe.zip
NOISSUE put legacy FTB support in a namespace, fix its base URL
Diffstat (limited to 'api/logic/modplatform/legacy_ftb/PackFetchTask.h')
-rw-r--r--api/logic/modplatform/legacy_ftb/PackFetchTask.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/api/logic/modplatform/legacy_ftb/PackFetchTask.h b/api/logic/modplatform/legacy_ftb/PackFetchTask.h
new file mode 100644
index 00000000..4a8469b1
--- /dev/null
+++ b/api/logic/modplatform/legacy_ftb/PackFetchTask.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "net/NetJob.h"
+#include <QTemporaryDir>
+#include <QByteArray>
+#include <QObject>
+#include "PackHelpers.h"
+
+namespace LegacyFTB {
+
+class MULTIMC_LOGIC_EXPORT PackFetchTask : public QObject {
+
+ Q_OBJECT
+
+public:
+ PackFetchTask() = default;
+ virtual ~PackFetchTask() = default;
+
+ void fetch();
+ void fetchPrivate(const QStringList &toFetch);
+
+private:
+ NetJobPtr jobPtr;
+
+ QByteArray publicModpacksXmlFileData;
+ QByteArray thirdPartyModpacksXmlFileData;
+
+ bool parseAndAddPacks(QByteArray &data, PackType packType, ModpackList &list);
+ ModpackList publicPacks;
+ ModpackList thirdPartyPacks;
+
+protected slots:
+ void fileDownloadFinished();
+ void fileDownloadFailed(QString reason);
+
+signals:
+ void finished(ModpackList publicPacks, ModpackList thirdPartyPacks);
+ void failed(QString reason);
+
+ void privateFileDownloadFinished(Modpack modpack);
+ void privateFileDownloadFailed(QString reason, QString packCode);
+};
+
+}