diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-16 07:18:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-16 07:18:34 +0200 |
commit | a5e7aedb4fda6b2d928c2af1c4ce414b12d47511 (patch) | |
tree | bfafbd9414a59f62bfbd3acea266131320f2faf5 /launcher | |
parent | 8f5bb982cd27dd9158b63d826769c168455a139b (diff) | |
parent | c22eec8f27e11a6517abb89075b36705d73b1983 (diff) | |
download | PrismLauncher-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.cpp | 21 |
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; } |