From 6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 15 Jun 2019 21:25:23 +0200 Subject: GH-2639 Add simple fabric loader installation support --- application/pages/instance/VersionPage.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'application/pages/instance/VersionPage.cpp') diff --git a/application/pages/instance/VersionPage.cpp b/application/pages/instance/VersionPage.cpp index cbe4a31c..699a5c10 100644 --- a/application/pages/instance/VersionPage.cpp +++ b/application/pages/instance/VersionPage.cpp @@ -180,6 +180,7 @@ void VersionPage::packageCurrent(const QModelIndex ¤t, const QModelIndex & void VersionPage::updateVersionControls() { + ui->fabricBtn->setEnabled(true); ui->forgeBtn->setEnabled(true); ui->liteloaderBtn->setEnabled(true); updateButtons(); @@ -187,6 +188,7 @@ void VersionPage::updateVersionControls() void VersionPage::disableVersionControls() { + ui->fabricBtn->setEnabled(false); ui->forgeBtn->setEnabled(false); ui->liteloaderBtn->setEnabled(false); ui->reloadBtn->setEnabled(false); @@ -389,6 +391,33 @@ void VersionPage::on_forgeBtn_clicked() } } +void VersionPage::on_fabricBtn_clicked() +{ + auto vlist = ENV.metadataIndex()->get("net.fabricmc.fabric-loader"); + if(!vlist) + { + return; + } + VersionSelectDialog vselect(vlist.get(), tr("Select Fabric Loader version"), this); + vselect.setEmptyString(tr("No Fabric Loader versions are currently available.")); + vselect.setEmptyErrorString(tr("Couldn't load or download the Fabric Loader version lists!")); + + auto currentVersion = m_profile->getComponentVersion("net.fabricmc.fabric-loader"); + if(!currentVersion.isEmpty()) + { + vselect.setCurrentVersion(currentVersion); + } + + if (vselect.exec() && vselect.selectedVersion()) + { + auto vsn = vselect.selectedVersion(); + m_profile->setComponentVersion("net.fabricmc.fabric-loader", vsn->descriptor()); + m_profile->resolve(Net::Mode::Online); + preselect(m_profile->rowCount(QModelIndex())-1); + m_container->refreshContainer(); + } +} + void VersionPage::on_addEmptyBtn_clicked() { NewComponentDialog compdialog(QString(), QString(), this); -- cgit v1.2.3