aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2023-08-16 07:18:34 +0200
committerGitHub <noreply@github.com>2023-08-16 07:18:34 +0200
commita5e7aedb4fda6b2d928c2af1c4ce414b12d47511 (patch)
treebfafbd9414a59f62bfbd3acea266131320f2faf5 /launcher
parent8f5bb982cd27dd9158b63d826769c168455a139b (diff)
parentc22eec8f27e11a6517abb89075b36705d73b1983 (diff)
downloadPrismLauncher-a5e7aedb4fda6b2d928c2af1c4ce414b12d47511.tar.gz
PrismLauncher-a5e7aedb4fda6b2d928c2af1c4ce414b12d47511.tar.bz2
PrismLauncher-a5e7aedb4fda6b2d928c2af1c4ce414b12d47511.zip
Merge pull request #1523 from Trial97/atlauncher
Fix crash when installing some ATLauncher packs
Diffstat (limited to 'launcher')
-rw-r--r--launcher/modplatform/atlauncher/ATLPackInstallTask.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
index 5d1a361d..e5771b7c 100644
--- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
+++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
@@ -1005,15 +1005,30 @@ static Meta::Version::Ptr getComponentVersion(const QString& uid, const QString&
if (!vlist)
return {};
- if (!vlist->isLoaded())
- vlist->load(Net::Mode::Online);
+ if (!vlist->isLoaded()) {
+ QEventLoop loadVersionLoop;
+ auto task = vlist->getLoadTask();
+ QObject::connect(task.get(), &Task::finished, &loadVersionLoop, &QEventLoop::quit);
+ if (!task->isRunning())
+ task->start();
+
+ loadVersionLoop.exec();
+ }
auto ver = vlist->getVersion(version);
if (!ver)
return {};
- if (!ver->isLoaded())
+ if (!ver->isLoaded()) {
+ QEventLoop loadVersionLoop;
ver->load(Net::Mode::Online);
+ auto task = ver->getCurrentTask();
+ QObject::connect(task.get(), &Task::finished, &loadVersionLoop, &QEventLoop::quit);
+ if (!task->isRunning())
+ task->start();
+
+ loadVersionLoop.exec();
+ }
return ver;
}