diff options
Diffstat (limited to 'api/logic/InstanceImportTask.h')
-rw-r--r-- | api/logic/InstanceImportTask.h | 17 |
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; }; |