summaryrefslogtreecommitdiffstats
path: root/api/logic/InstanceImportTask.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-09-04 08:17:25 +0200
committerPetr Mrázek <peterix@gmail.com>2017-09-04 08:17:25 +0200
commitd80382180ef14d814eb9f6d7f2bf5db362f25cc2 (patch)
tree824dae31e08a961be3b1f0bf0129419ccbbef9b2 /api/logic/InstanceImportTask.h
parentb8adbb9b73751b022b42180dcc213dc99be9765b (diff)
downloadMultiMC-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar
MultiMC-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar.gz
MultiMC-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar.lz
MultiMC-d80382180ef14d814eb9f6d7f2bf5db362f25cc2.tar.xz
MultiMC-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.h14
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;
};