aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-11-12 13:03:50 -0300
committerflow <flowlnlnln@gmail.com>2022-12-06 17:00:33 -0300
commit57b905be2493f68ab49482a45ab63249bb6468fa (patch)
treecbdb85068d16ab5798413bfe6b3fbd45a7e83a42 /launcher/ui/pages
parent34794cc4af5655021b43291c61ad94f7116a3c27 (diff)
downloadPrismLauncher-57b905be2493f68ab49482a45ab63249bb6468fa.tar.gz
PrismLauncher-57b905be2493f68ab49482a45ab63249bb6468fa.tar.bz2
PrismLauncher-57b905be2493f68ab49482a45ab63249bb6468fa.zip
feat(ManagedPackPage): implement Flame modpack updating button
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ui/pages')
-rw-r--r--launcher/ui/pages/instance/ManagedPackPage.cpp26
-rw-r--r--launcher/ui/pages/instance/ManagedPackPage.h2
2 files changed, 28 insertions, 0 deletions
diff --git a/launcher/ui/pages/instance/ManagedPackPage.cpp b/launcher/ui/pages/instance/ManagedPackPage.cpp
index f00a2bdd..5f108cf1 100644
--- a/launcher/ui/pages/instance/ManagedPackPage.cpp
+++ b/launcher/ui/pages/instance/ManagedPackPage.cpp
@@ -271,6 +271,7 @@ FlameManagedPackPage::FlameManagedPackPage(BaseInstance* inst, InstanceWindow* i
{
Q_ASSERT(inst->isManagedPack());
connect(ui->versionsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(suggestVersion()));
+ connect(ui->updateButton, &QPushButton::pressed, this, &FlameManagedPackPage::update);
}
void FlameManagedPackPage::parseManagedPack() {
@@ -367,4 +368,29 @@ void FlameManagedPackPage::suggestVersion()
ManagedPackPage::suggestVersion();
}
+void FlameManagedPackPage::update()
+{
+ auto index = ui->versionsComboBox->currentIndex();
+ auto version = m_pack.versions.at(index);
+
+ QMap<QString, QString> extra_info;
+ extra_info.insert("pack_id", m_inst->getManagedPackID());
+ extra_info.insert("pack_version_id", QString::number(version.fileId));
+
+ auto extracted = new InstanceImportTask(version.downloadUrl, this, extra_info);
+
+ InstanceName inst_name(m_inst->getManagedPackName(), version.version);
+ inst_name.setName(m_inst->name().replace(m_inst->getManagedPackVersionName(), version.version));
+ extracted->setName(inst_name);
+
+ extracted->setGroup(APPLICATION->instances()->getInstanceGroup(m_inst->id()));
+ extracted->setIcon(m_inst->iconKey());
+ extracted->setConfirmUpdate(false);
+
+ auto did_succeed = runUpdateTask(extracted);
+
+ if (m_instance_window && did_succeed)
+ m_instance_window->close();
+}
+
#include "ManagedPackPage.moc"
diff --git a/launcher/ui/pages/instance/ManagedPackPage.h b/launcher/ui/pages/instance/ManagedPackPage.h
index 6d487820..9ad5e34a 100644
--- a/launcher/ui/pages/instance/ManagedPackPage.h
+++ b/launcher/ui/pages/instance/ManagedPackPage.h
@@ -134,6 +134,8 @@ class FlameManagedPackPage final : public ManagedPackPage {
public slots:
void suggestVersion() override;
+ void update() override;
+
private:
Flame::IndexedPack m_pack;
FlameAPI m_api;