2018-02-28 18:42:30 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "net/NetJob.h"
|
|
|
|
#include <QTemporaryDir>
|
|
|
|
#include <QByteArray>
|
|
|
|
#include <QObject>
|
|
|
|
#include "PackHelpers.h"
|
|
|
|
|
|
|
|
class MULTIMC_LOGIC_EXPORT FtbPackFetchTask : public QObject {
|
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
Q_OBJECT
|
2018-02-28 18:42:30 +00:00
|
|
|
|
|
|
|
public:
|
2018-08-01 23:52:31 +01:00
|
|
|
FtbPackFetchTask() = default;
|
|
|
|
virtual ~FtbPackFetchTask() = default;
|
2018-02-28 18:42:30 +00:00
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
void fetch();
|
2018-08-01 23:52:31 +01:00
|
|
|
void fetchPrivate(const QStringList &toFetch);
|
2018-02-28 18:42:30 +00:00
|
|
|
|
|
|
|
private:
|
2018-07-15 13:51:05 +01:00
|
|
|
NetJobPtr jobPtr;
|
2018-02-28 18:42:30 +00:00
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
QByteArray publicModpacksXmlFileData;
|
|
|
|
QByteArray thirdPartyModpacksXmlFileData;
|
2018-04-01 19:24:28 +01:00
|
|
|
|
2018-07-15 13:51:05 +01:00
|
|
|
bool parseAndAddPacks(QByteArray &data, FtbPackType packType, FtbModpackList &list);
|
|
|
|
FtbModpackList publicPacks;
|
|
|
|
FtbModpackList thirdPartyPacks;
|
2018-02-28 18:42:30 +00:00
|
|
|
|
|
|
|
protected slots:
|
2018-07-15 13:51:05 +01:00
|
|
|
void fileDownloadFinished();
|
|
|
|
void fileDownloadFailed(QString reason);
|
2018-02-28 18:42:30 +00:00
|
|
|
|
|
|
|
signals:
|
2018-07-15 13:51:05 +01:00
|
|
|
void finished(FtbModpackList publicPacks, FtbModpackList thirdPartyPacks);
|
|
|
|
void failed(QString reason);
|
2018-02-28 18:42:30 +00:00
|
|
|
|
2018-08-01 23:52:31 +01:00
|
|
|
void privateFileDownloadFinished(FtbModpack modpack);
|
|
|
|
void privateFileDownloadFailed(QString reason, QString packCode);
|
2018-02-28 18:42:30 +00:00
|
|
|
};
|