aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-06-19 17:42:16 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-06-19 17:42:16 +0300
commit6fd729e285f67c74633d27575717070f3577a132 (patch)
tree7eb4d87e968c3dbec1cd33b2f1290718d181d8a5 /launcher/ui/dialogs
parent8ad9692daab303bba6f5337f6660d8437ec8f330 (diff)
downloadPrismLauncher-6fd729e285f67c74633d27575717070f3577a132.tar.gz
PrismLauncher-6fd729e285f67c74633d27575717070f3577a132.tar.bz2
PrismLauncher-6fd729e285f67c74633d27575717070f3577a132.zip
Fixed regresion regarding modrinth project_id in dependence array
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/ui/dialogs')
-rw-r--r--launcher/ui/dialogs/ResourceDownloadDialog.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/launcher/ui/dialogs/ResourceDownloadDialog.cpp b/launcher/ui/dialogs/ResourceDownloadDialog.cpp
index c7d9da4e..4f59f560 100644
--- a/launcher/ui/dialogs/ResourceDownloadDialog.cpp
+++ b/launcher/ui/dialogs/ResourceDownloadDialog.cpp
@@ -125,14 +125,22 @@ void ResourceDownloadDialog::connectButtons()
static ModPlatform::ProviderCapabilities ProviderCaps;
-QStringList getRequiredBy(QList<ResourceDownloadDialog::DownloadTaskPtr> tasks, QVariant addonId)
+QStringList getRequiredBy(QList<ResourceDownloadDialog::DownloadTaskPtr> tasks, ResourceDownloadDialog::DownloadTaskPtr pack)
{
+ auto addonId = pack->getPack()->addonId;
+ auto provider = pack->getPack()->provider;
+ auto version = pack->getVersionID();
auto req = QStringList();
for (auto& task : tasks) {
+ if (provider != task->getPack()->provider)
+ continue;
auto deps = task->getVersion().dependencies;
if (auto dep = std::find_if(deps.begin(), deps.end(),
- [addonId](const ModPlatform::Dependency& d) {
- return d.addonId == addonId && d.type == ModPlatform::DependencyType::REQUIRED;
+ [addonId, provider, version](const ModPlatform::Dependency& d) {
+ return d.type == ModPlatform::DependencyType::REQUIRED &&
+ (provider == ModPlatform::ResourceProvider::MODRINTH && d.addonId.toString().isEmpty()
+ ? version == d.version
+ : d.addonId == addonId);
});
dep != deps.end()) {
req.append(task->getName());
@@ -179,7 +187,7 @@ void ResourceDownloadDialog::confirm()
});
for (auto& task : selected) {
confirm_dialog->appendResource({ task->getName(), task->getFilename(), task->getCustomPath(),
- ProviderCaps.name(task->getProvider()), getRequiredBy(selected, task->getPack()->addonId) });
+ ProviderCaps.name(task->getProvider()), getRequiredBy(selected, task) });
}
if (confirm_dialog->exec()) {