aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/modrinth
diff options
context:
space:
mode:
authorTheKodeToad <TheKodeToad@proton.me>2023-03-04 10:37:52 +0000
committerTheKodeToad <TheKodeToad@proton.me>2023-03-04 10:37:56 +0000
commitf583e617ec86a7538523a99ae008143a787e593b (patch)
treed3e66a7dab7cabfe5beb5d70e67c208d660fafd7 /launcher/modplatform/modrinth
parenta2716f5cf6d72168ab5aa4415c046505e42404f1 (diff)
downloadPrismLauncher-f583e617ec86a7538523a99ae008143a787e593b.tar.gz
PrismLauncher-f583e617ec86a7538523a99ae008143a787e593b.tar.bz2
PrismLauncher-f583e617ec86a7538523a99ae008143a787e593b.zip
Implement abort (possible broken?) and therefore make it work without crashing!
The shared pointer was going out of scope 🤦. Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
Diffstat (limited to 'launcher/modplatform/modrinth')
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackExportTask.cpp14
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackExportTask.h2
2 files changed, 12 insertions, 4 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp b/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
index d7a43c7a..c151edf5 100644
--- a/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
@@ -47,10 +47,16 @@ void ModrinthPackExportTask::executeTask()
collectFiles();
QByteArray* response = new QByteArray;
- Task::Ptr versionsTask = api.currentVersions(fileHashes.values(), "sha512", response);
- connect(versionsTask.get(), &NetJob::succeeded, [this, response]() { parseApiResponse(response); });
- connect(versionsTask.get(), &NetJob::failed, this, &ModrinthPackExportTask::emitFailed);
- versionsTask->start();
+ task = api.currentVersions(fileHashes.values(), "sha512", response);
+ connect(task.get(), &NetJob::succeeded, [this, response]() { parseApiResponse(response); });
+ connect(task.get(), &NetJob::failed, this, &ModrinthPackExportTask::emitFailed);
+ task->start();
+}
+
+bool ModrinthPackExportTask::abort() {
+ if (!task.isNull())
+ return task->abort();
+ return false;
}
void ModrinthPackExportTask::collectFiles()
diff --git a/launcher/modplatform/modrinth/ModrinthPackExportTask.h b/launcher/modplatform/modrinth/ModrinthPackExportTask.h
index 4ac00522..ec87c1cd 100644
--- a/launcher/modplatform/modrinth/ModrinthPackExportTask.h
+++ b/launcher/modplatform/modrinth/ModrinthPackExportTask.h
@@ -34,6 +34,7 @@ class ModrinthPackExportTask : public Task {
protected:
void executeTask() override;
+ bool abort() override;
private:
static const QStringList PREFIXES;
@@ -47,6 +48,7 @@ class ModrinthPackExportTask : public Task {
ModrinthAPI api;
QFileInfoList files;
QMap<QString, QString> fileHashes;
+ Task::Ptr task;
struct ResolvedFile {
QString sha1, sha512, url;