From d80382180ef14d814eb9f6d7f2bf5db362f25cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 4 Sep 2017 08:17:25 +0200 Subject: NOISSUE refactor pack import (extraction and paths) It now: * Doesn't extract until it knows the content format is good. * Extracts in a predictable location, not requiring to use a second path for the actual pack root. --- api/logic/InstanceImportTask.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'api/logic/InstanceImportTask.h') diff --git a/api/logic/InstanceImportTask.h b/api/logic/InstanceImportTask.h index d5192299..e5f35b3a 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 { @@ -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(); @@ -46,11 +47,16 @@ private: /* data */ 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 m_packZip; QFuture m_extractFuture; QFutureWatcher m_extractFutureWatcher; + enum class ModpackType{ + Unknown, + MultiMC, + Flame + } m_modpackType = ModpackType::Unknown; }; -- cgit v1.2.3