aboutsummaryrefslogtreecommitdiff
path: root/api/logic/modplatform/atlauncher/ATLPackInstallTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/modplatform/atlauncher/ATLPackInstallTask.h')
-rw-r--r--api/logic/modplatform/atlauncher/ATLPackInstallTask.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackInstallTask.h b/api/logic/modplatform/atlauncher/ATLPackInstallTask.h
index 12e6bcf5..78544bab 100644
--- a/api/logic/modplatform/atlauncher/ATLPackInstallTask.h
+++ b/api/logic/modplatform/atlauncher/ATLPackInstallTask.h
@@ -11,6 +11,8 @@
#include "minecraft/PackProfile.h"
#include "meta/Version.h"
+#include <nonstd/optional>
+
namespace ATLauncher {
class MULTIMC_LOGIC_EXPORT PackInstallTask : public InstanceTask
@@ -30,6 +32,9 @@ private slots:
void onDownloadSucceeded();
void onDownloadFailed(QString reason);
+ void onModsDownloaded();
+ void onModsExtracted();
+
private:
QString getDirForModType(ModType type, QString raw);
QString getVersionForLoader(QString uid);
@@ -40,9 +45,12 @@ private:
void installConfigs();
void extractConfigs();
- void installMods();
- void extractMods();
- void decompMods();
+ void downloadMods();
+ bool extractMods(
+ const QMap<QString, VersionMod> &toExtract,
+ const QMap<QString, VersionMod> &toDecomp,
+ const QMap<QString, QString> &toCopy
+ );
void install();
private:
@@ -55,14 +63,18 @@ private:
QMap<QString, VersionMod> modsToExtract;
QMap<QString, VersionMod> modsToDecomp;
+ QMap<QString, QString> modsToCopy;
QString archivePath;
QStringList jarmods;
Meta::VersionPtr minecraftVersion;
QMap<QString, Meta::VersionPtr> componentsToInstall;
- QFuture<QStringList> m_extractFuture;
- QFutureWatcher<QStringList> m_extractFutureWatcher;
+ QFuture<nonstd::optional<QStringList>> m_extractFuture;
+ QFutureWatcher<nonstd::optional<QStringList>> m_extractFutureWatcher;
+
+ QFuture<bool> m_modExtractFuture;
+ QFutureWatcher<bool> m_modExtractFutureWatcher;
QFuture<bool> m_decompFuture;
QFutureWatcher<bool> m_decompFutureWatcher;