aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/modplatform
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui/pages/modplatform')
-rw-r--r--launcher/ui/pages/modplatform/flame/FlamePage.cpp17
-rw-r--r--launcher/ui/pages/modplatform/flame/FlamePage.h2
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp6
3 files changed, 19 insertions, 6 deletions
diff --git a/launcher/ui/pages/modplatform/flame/FlamePage.cpp b/launcher/ui/pages/modplatform/flame/FlamePage.cpp
index a65b6585..d288a869 100644
--- a/launcher/ui/pages/modplatform/flame/FlamePage.cpp
+++ b/launcher/ui/pages/modplatform/flame/FlamePage.cpp
@@ -197,12 +197,18 @@ void FlamePage::suggestCurrent()
return;
}
- if (selectedVersion.isEmpty() || selectedVersion == "-1") {
+ if (m_selected_version_index == -1) {
dialog->setSuggestedPack();
return;
}
- dialog->setSuggestedPack(current.name, new InstanceImportTask(selectedVersion,this));
+ auto version = current.versions.at(m_selected_version_index);
+
+ QMap<QString, QString> extra_info;
+ extra_info.insert("pack_id", QString::number(current.addonId));
+ extra_info.insert("pack_version_id", QString::number(version.fileId));
+
+ dialog->setSuggestedPack(current.name, new InstanceImportTask(version.downloadUrl, this, extra_info));
QString editedLogoName;
editedLogoName = "curseforge_" + current.logoName.section(".", 0, 0);
listModel->getLogo(current.logoName, current.logoUrl,
@@ -212,10 +218,13 @@ void FlamePage::suggestCurrent()
void FlamePage::onVersionSelectionChanged(QString data)
{
if (data.isNull() || data.isEmpty()) {
- selectedVersion = "";
+ m_selected_version_index = -1;
return;
}
- selectedVersion = ui->versionSelectionBox->currentData().toString();
+
+ m_selected_version_index = ui->versionSelectionBox->currentIndex();
+ Q_ASSERT(current.versions.at(m_selected_version_index).downloadUrl == ui->versionSelectionBox->currentData().toString());
+
suggestCurrent();
}
diff --git a/launcher/ui/pages/modplatform/flame/FlamePage.h b/launcher/ui/pages/modplatform/flame/FlamePage.h
index 8130e416..8bdca38e 100644
--- a/launcher/ui/pages/modplatform/flame/FlamePage.h
+++ b/launcher/ui/pages/modplatform/flame/FlamePage.h
@@ -99,5 +99,5 @@ private:
Flame::ListModel* listModel = nullptr;
Flame::IndexedPack current;
- QString selectedVersion;
+ int m_selected_version_index = -1;
};
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index 4482774c..c66395f2 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -300,7 +300,11 @@ void ModrinthPage::suggestCurrent()
for (auto& ver : current.versions) {
if (ver.id == selectedVersion) {
- dialog->setSuggestedPack(current.name, ver.version, new InstanceImportTask(ver.download_url, this));
+ QMap<QString, QString> extra_info;
+ extra_info.insert("pack_id", current.id);
+ extra_info.insert("pack_version_id", ver.id);
+
+ dialog->setSuggestedPack(current.name, ver.version, new InstanceImportTask(ver.download_url, this, extra_info));
auto iconName = current.iconName;
m_model->getLogo(iconName, current.iconUrl.toString(),
[this, iconName](QString logo) { dialog->setSuggestedIconFromFile(logo, iconName); });