diff options
author | Petr Mrázek <peterix@gmail.com> | 2019-06-15 21:25:23 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2019-06-15 21:25:23 +0200 |
commit | 6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a (patch) | |
tree | 58b12dfd07f7b3611d2a4b5bc5748526b2ce9620 /application | |
parent | 83c48a0f1a7822d5442e604da430d20959132c1e (diff) | |
download | MultiMC-6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a.tar MultiMC-6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a.tar.gz MultiMC-6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a.tar.lz MultiMC-6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a.tar.xz MultiMC-6c30076b6c49c3a5a9b1f18d0e33f6663a7ba90a.zip |
GH-2639 Add simple fabric loader installation support
Diffstat (limited to 'application')
-rw-r--r-- | application/pages/instance/VersionPage.cpp | 29 | ||||
-rw-r--r-- | application/pages/instance/VersionPage.h | 1 | ||||
-rw-r--r-- | application/pages/instance/VersionPage.ui | 13 |
3 files changed, 42 insertions, 1 deletions
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); diff --git a/application/pages/instance/VersionPage.h b/application/pages/instance/VersionPage.h index 5432e009..4957c9ea 100644 --- a/application/pages/instance/VersionPage.h +++ b/application/pages/instance/VersionPage.h @@ -49,6 +49,7 @@ public: virtual bool shouldDisplay() const override; private slots: + void on_fabricBtn_clicked(); void on_forgeBtn_clicked(); void on_addEmptyBtn_clicked(); void on_liteloaderBtn_clicked(); diff --git a/application/pages/instance/VersionPage.ui b/application/pages/instance/VersionPage.ui index cfb13f94..40061a3a 100644 --- a/application/pages/instance/VersionPage.ui +++ b/application/pages/instance/VersionPage.ui @@ -171,6 +171,16 @@ </widget> </item> <item> + <widget class="QPushButton" name="fabricBtn"> + <property name="toolTip"> + <string>Install the Minecraft Forge package.</string> + </property> + <property name="text"> + <string>Install Fabric</string> + </property> + </widget> + </item> + <item> <widget class="QPushButton" name="liteloaderBtn"> <property name="toolTip"> <string>Install the LiteLoader package.</string> @@ -298,6 +308,7 @@ </customwidget> </customwidgets> <tabstops> + <tabstop>tabWidget</tabstop> <tabstop>packageView</tabstop> <tabstop>changeVersionBtn</tabstop> <tabstop>moveUpBtn</tabstop> @@ -307,6 +318,7 @@ <tabstop>editBtn</tabstop> <tabstop>revertBtn</tabstop> <tabstop>forgeBtn</tabstop> + <tabstop>fabricBtn</tabstop> <tabstop>liteloaderBtn</tabstop> <tabstop>modBtn</tabstop> <tabstop>jarmodBtn</tabstop> @@ -314,7 +326,6 @@ <tabstop>addEmptyBtn</tabstop> <tabstop>reloadBtn</tabstop> <tabstop>downloadBtn</tabstop> - <tabstop>tabWidget</tabstop> </tabstops> <resources/> <connections/> |