aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorTheKodeToad <TheKodeToad@proton.me>2023-03-28 14:22:28 +0100
committerTheKodeToad <TheKodeToad@proton.me>2023-03-28 14:22:28 +0100
commite42050cc8a2f74178d6cd0afe8c92ae9b802cf73 (patch)
tree99751241d422da79f8302e8c45e9b0fd50149e03 /launcher
parent46f448dfba2a3c4bffe60f373ee27b1d19873c9e (diff)
downloadPrismLauncher-e42050cc8a2f74178d6cd0afe8c92ae9b802cf73.tar.gz
PrismLauncher-e42050cc8a2f74178d6cd0afe8c92ae9b802cf73.tar.bz2
PrismLauncher-e42050cc8a2f74178d6cd0afe8c92ae9b802cf73.zip
Skip lookup if no files and fail if zipping fails
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
Diffstat (limited to 'launcher')
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackExportTask.cpp22
-rw-r--r--launcher/ui/dialogs/ExportMrPackDialog.cpp6
2 files changed, 15 insertions, 13 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp b/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
index 46bfab6d..d630f5d0 100644
--- a/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackExportTask.cpp
@@ -46,11 +46,15 @@ void ModrinthPackExportTask::executeTask()
setProgress(0, 0);
collectFiles();
- QByteArray* response = new QByteArray;
- task = api.currentVersions(pendingHashes.values(), "sha512", response);
- connect(task.get(), &NetJob::succeeded, [this, response]() { parseApiResponse(response); });
- connect(task.get(), &NetJob::failed, this, &ModrinthPackExportTask::emitFailed);
- task->start();
+ if (pendingHashes.isEmpty())
+ buildZip();
+ else {
+ QByteArray* response = new QByteArray;
+ task = api.currentVersions(pendingHashes.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()
@@ -176,8 +180,12 @@ void ModrinthPackExportTask::buildZip()
setProgress(i, files.length());
QString relative = mc.relativeFilePath(file.absoluteFilePath());
- if (!resolvedFiles.contains(relative) && !JlCompress::compressFile(&zip, file.absoluteFilePath(), "overrides/" + relative))
- qWarning() << "Could not compress" << file;
+ if (!resolvedFiles.contains(relative) && !JlCompress::compressFile(&zip, file.absoluteFilePath(), "overrides/" + relative)) {
+ QFile::remove(output);
+ QMetaObject::invokeMethod(
+ this, [this, relative]() { emitFailed(tr("Could not compress %1").arg(relative)); }, Qt::QueuedConnection);
+ return;
+ }
i++;
}
diff --git a/launcher/ui/dialogs/ExportMrPackDialog.cpp b/launcher/ui/dialogs/ExportMrPackDialog.cpp
index 02b6721d..a622eb30 100644
--- a/launcher/ui/dialogs/ExportMrPackDialog.cpp
+++ b/launcher/ui/dialogs/ExportMrPackDialog.cpp
@@ -87,12 +87,6 @@ void ExportMrPackDialog::done(int result)
connect(&task, &Task::failed,
[this](const QString reason) { CustomMessageBox::selectable(this, tr("Error"), reason, QMessageBox::Critical)->show(); });
-
- connect(&task, &Task::succeeded, [this, &task]() {
- QStringList warnings = task.warnings();
- if (warnings.count() > 0)
- CustomMessageBox::selectable(this, tr("Warnings"), warnings.join('\n'), QMessageBox::Warning)->show();
- });
connect(&task, &Task::aborted, [this] {
CustomMessageBox::selectable(this, tr("Task aborted"), tr("The task has been aborted by the user."), QMessageBox::Information)
->show();