diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-09-04 08:17:25 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-09-04 08:17:25 +0200 |
commit | d80382180ef14d814eb9f6d7f2bf5db362f25cc2 (patch) | |
tree | 824dae31e08a961be3b1f0bf0129419ccbbef9b2 /api/logic/InstanceImportTask.h | |
parent | b8adbb9b73751b022b42180dcc213dc99be9765b (diff) | |
download | PrismLauncher-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar.gz PrismLauncher-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar.bz2 PrismLauncher-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.zip |
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.
Diffstat (limited to 'api/logic/InstanceImportTask.h')
-rw-r--r-- | api/logic/InstanceImportTask.h | 14 |
1 files changed, 10 insertions, 4 deletions
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<QuaZip> m_packZip; QFuture<QStringList> m_extractFuture; QFutureWatcher<QStringList> m_extractFutureWatcher; + enum class ModpackType{ + Unknown, + MultiMC, + Flame + } m_modpackType = ModpackType::Unknown; }; |