summaryrefslogtreecommitdiffstats
path: root/api/logic/InstanceImportTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/InstanceImportTask.h')
-rw-r--r--api/logic/InstanceImportTask.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/api/logic/InstanceImportTask.h b/api/logic/InstanceImportTask.h
index d5192299..99397009 100644
--- a/api/logic/InstanceImportTask.h
+++ b/api/logic/InstanceImportTask.h
@@ -9,6 +9,7 @@
#include "settings/SettingsObject.h"
#include "QObjectPtr.h"
+class QuaZip;
class BaseInstanceProvider;
namespace Flame
{
@@ -19,7 +20,7 @@ class MULTIMC_LOGIC_EXPORT InstanceImportTask : public Task
{
Q_OBJECT
public:
- explicit InstanceImportTask(SettingsObjectPtr settings, const QUrl sourceUrl, BaseInstanceProvider * target, const QString &instName,
+ explicit InstanceImportTask(SettingsObjectPtr settings, const QUrl sourceUrl, const QString & stagingPath, const QString &instName,
const QString &instIcon, const QString &instGroup);
protected:
@@ -27,9 +28,9 @@ protected:
virtual void executeTask() override;
private:
- void extractAndTweak();
- void processMultiMC(const QFileInfo &config);
- void processFlame(const QFileInfo &manifest);
+ void processZipPack();
+ void processMultiMC();
+ void processFlame();
private slots:
void downloadSucceeded();
@@ -43,14 +44,18 @@ private: /* data */
NetJobPtr m_filesNetJob;
shared_qobject_ptr<Flame::FileResolvingTask> m_modIdResolver;
QUrl m_sourceUrl;
- BaseInstanceProvider * m_target;
QString m_archivePath;
bool m_downloadRequired = false;
- QString m_packRoot;
QString m_instName;
QString m_instIcon;
QString m_instGroup;
QString m_stagingPath;
+ std::unique_ptr<QuaZip> m_packZip;
QFuture<QStringList> m_extractFuture;
QFutureWatcher<QStringList> m_extractFutureWatcher;
+ enum class ModpackType{
+ Unknown,
+ MultiMC,
+ Flame
+ } m_modpackType = ModpackType::Unknown;
};