diff options
| author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-08-11 08:24:14 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-11 08:24:14 +0200 | 
| commit | 396f81249693cc3d968450d18a0251e53c5a49b2 (patch) | |
| tree | ae424347f07ccd1b23b45ccfe651ca7dd5888331 /launcher/ui/pages/instance | |
| parent | 2090f958c8d1940238fe08f98eee2145edb12906 (diff) | |
| parent | 8140374e26dc97c7b1752f1018991bf19ee86f7c (diff) | |
| download | PrismLauncher-396f81249693cc3d968450d18a0251e53c5a49b2.tar.gz PrismLauncher-396f81249693cc3d968450d18a0251e53c5a49b2.tar.bz2 PrismLauncher-396f81249693cc3d968450d18a0251e53c5a49b2.zip | |
Merge pull request #1230 from TheKodeToad/better-component-installation
Revamp loader installation UI
Diffstat (limited to 'launcher/ui/pages/instance')
| -rw-r--r-- | launcher/ui/pages/instance/VersionPage.cpp | 130 | ||||
| -rw-r--r-- | launcher/ui/pages/instance/VersionPage.h | 5 | ||||
| -rw-r--r-- | launcher/ui/pages/instance/VersionPage.ui | 62 | 
3 files changed, 27 insertions, 170 deletions
| diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp index a180c804..9e34f766 100644 --- a/launcher/ui/pages/instance/VersionPage.cpp +++ b/launcher/ui/pages/instance/VersionPage.cpp @@ -6,7 +6,7 @@   *  Prism Launcher - Minecraft Launcher   *  Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>   *  Copyright (C) 2022-2023 Sefa Eyeoglu <contact@scrumplex.net> - *  Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me> + *  Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>   *   *  This program is free software: you can redistribute it and/or modify   *  it under the terms of the GNU General Public License as published by @@ -51,6 +51,7 @@  #include <QUrl>  #include "VersionPage.h" +#include "ui/dialogs/InstallLoaderDialog.h"  #include "ui_VersionPage.h"  #include "ui/dialogs/CustomMessageBox.h" @@ -226,18 +227,6 @@ void VersionPage::packageCurrent(const QModelIndex& current, const QModelIndex&  void VersionPage::updateVersionControls()  { -    // FIXME: this is a dirty hack -    auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft")); - -    bool supportsFabric = minecraftVersion >= Version("1.14"); -    ui->actionInstall_Fabric->setEnabled(supportsFabric); - -    bool supportsQuilt = minecraftVersion >= Version("1.14"); -    ui->actionInstall_Quilt->setEnabled(supportsQuilt); - -    bool supportsLiteLoader = minecraftVersion <= Version("1.12.2"); -    ui->actionInstall_LiteLoader->setEnabled(supportsLiteLoader); -      updateButtons();  } @@ -389,20 +378,14 @@ void VersionPage::on_actionChange_version_triggered()          return;      }      auto uid = list->uid(); -    // FIXME: this is a horrible HACK. Get version filtering information from the actual metadata... -    if (uid == "net.minecraftforge") { -        on_actionInstall_Forge_triggered(); -        return; -    } else if (uid == "com.mumfrey.liteloader") { -        on_actionInstall_LiteLoader_triggered(); -        return; -    } +      VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this);      if (uid == "net.fabricmc.intermediary" || uid == "org.quiltmc.hashed") {          vselect.setEmptyString(tr("No intermediary mappings versions are currently available."));          vselect.setEmptyErrorString(tr("Couldn't load or download the intermediary mappings version lists!")); -        vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft"));      } +    vselect.setExactIfPresentFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft")); +      auto currentVersion = patch->getVersion();      if (!currentVersion.isEmpty()) {          vselect.setCurrentVersion(currentVersion); @@ -443,79 +426,11 @@ void VersionPage::on_actionDownload_All_triggered()      m_container->refreshContainer();  } -void VersionPage::on_actionInstall_Forge_triggered() -{ -    auto vlist = APPLICATION->metadataIndex()->get("net.minecraftforge"); -    if (!vlist) { -        return; -    } -    VersionSelectDialog vselect(vlist.get(), tr("Select Forge version"), this); -    vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft")); -    vselect.setEmptyString(tr("No Forge versions are currently available for Minecraft ") + -                           m_profile->getComponentVersion("net.minecraft")); -    vselect.setEmptyErrorString(tr("Couldn't load or download the Forge version lists!")); - -    auto currentVersion = m_profile->getComponentVersion("net.minecraftforge"); -    if (!currentVersion.isEmpty()) { -        vselect.setCurrentVersion(currentVersion); -    } - -    if (vselect.exec() && vselect.selectedVersion()) { -        auto vsn = vselect.selectedVersion(); -        m_profile->setComponentVersion("net.minecraftforge", vsn->descriptor()); -        m_profile->resolve(Net::Mode::Online); -        // m_profile->installVersion(); -        preselect(m_profile->rowCount(QModelIndex()) - 1); -        m_container->refreshContainer(); -    } -} - -void VersionPage::on_actionInstall_Fabric_triggered() +void VersionPage::on_actionInstall_Loader_triggered()  { -    auto vlist = APPLICATION->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_actionInstall_Quilt_triggered() -{ -    auto vlist = APPLICATION->metadataIndex()->get("org.quiltmc.quilt-loader"); -    if (!vlist) { -        return; -    } -    VersionSelectDialog vselect(vlist.get(), tr("Select Quilt Loader version"), this); -    vselect.setEmptyString(tr("No Quilt Loader versions are currently available.")); -    vselect.setEmptyErrorString(tr("Couldn't load or download the Quilt Loader version lists!")); - -    auto currentVersion = m_profile->getComponentVersion("org.quiltmc.quilt-loader"); -    if (!currentVersion.isEmpty()) { -        vselect.setCurrentVersion(currentVersion); -    } - -    if (vselect.exec() && vselect.selectedVersion()) { -        auto vsn = vselect.selectedVersion(); -        m_profile->setComponentVersion("org.quiltmc.quilt-loader", vsn->descriptor()); -        m_profile->resolve(Net::Mode::Online); -        preselect(m_profile->rowCount(QModelIndex()) - 1); -        m_container->refreshContainer(); -    } +    InstallLoaderDialog dialog(m_inst->getPackProfile(), QString(), this); +    dialog.exec(); +    m_container->refreshContainer();  }  void VersionPage::on_actionAdd_Empty_triggered() @@ -534,33 +449,6 @@ void VersionPage::on_actionAdd_Empty_triggered()      }  } -void VersionPage::on_actionInstall_LiteLoader_triggered() -{ -    auto vlist = APPLICATION->metadataIndex()->get("com.mumfrey.liteloader"); -    if (!vlist) { -        return; -    } -    VersionSelectDialog vselect(vlist.get(), tr("Select LiteLoader version"), this); -    vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft")); -    vselect.setEmptyString(tr("No LiteLoader versions are currently available for Minecraft ") + -                           m_profile->getComponentVersion("net.minecraft")); -    vselect.setEmptyErrorString(tr("Couldn't load or download the LiteLoader version lists!")); - -    auto currentVersion = m_profile->getComponentVersion("com.mumfrey.liteloader"); -    if (!currentVersion.isEmpty()) { -        vselect.setCurrentVersion(currentVersion); -    } - -    if (vselect.exec() && vselect.selectedVersion()) { -        auto vsn = vselect.selectedVersion(); -        m_profile->setComponentVersion("com.mumfrey.liteloader", vsn->descriptor()); -        m_profile->resolve(Net::Mode::Online); -        // m_profile->installVersion(vselect.selectedVersion()); -        preselect(m_profile->rowCount(QModelIndex()) - 1); -        m_container->refreshContainer(); -    } -} -  void VersionPage::on_actionLibrariesFolder_triggered()  {      DesktopServices::openDirectory(m_inst->getLocalLibraryPath(), true); diff --git a/launcher/ui/pages/instance/VersionPage.h b/launcher/ui/pages/instance/VersionPage.h index 45d383f4..6915be88 100644 --- a/launcher/ui/pages/instance/VersionPage.h +++ b/launcher/ui/pages/instance/VersionPage.h @@ -68,11 +68,8 @@ class VersionPage : public QMainWindow, public BasePage {     private slots:      void on_actionChange_version_triggered(); -    void on_actionInstall_Forge_triggered(); -    void on_actionInstall_Fabric_triggered(); -    void on_actionInstall_Quilt_triggered(); +    void on_actionInstall_Loader_triggered();      void on_actionAdd_Empty_triggered(); -    void on_actionInstall_LiteLoader_triggered();      void on_actionReload_triggered();      void on_actionRemove_triggered();      void on_actionMove_up_triggered(); diff --git a/launcher/ui/pages/instance/VersionPage.ui b/launcher/ui/pages/instance/VersionPage.ui index a73c42d6..9be21d49 100644 --- a/launcher/ui/pages/instance/VersionPage.ui +++ b/launcher/ui/pages/instance/VersionPage.ui @@ -98,11 +98,7 @@     <addaction name="actionEdit"/>     <addaction name="actionRevert"/>     <addaction name="separator"/> -   <addaction name="actionInstall_Forge"/> -   <addaction name="actionInstall_Fabric"/> -   <addaction name="actionInstall_Quilt"/> -   <addaction name="actionInstall_LiteLoader"/> -   <addaction name="separator"/> +   <addaction name="actionInstall_Loader"/>     <addaction name="actionAdd_to_Minecraft_jar"/>     <addaction name="actionReplace_Minecraft_jar"/>     <addaction name="actionAdd_Agents"/> @@ -116,26 +112,26 @@    </widget>    <action name="actionChange_version">     <property name="text"> -    <string>Change version</string> +    <string>Change Version</string>     </property>     <property name="toolTip"> -    <string>Change version of the selected package.</string> +    <string>Change version of the selected component.</string>     </property>    </action>    <action name="actionMove_up">     <property name="text"> -    <string>Move up</string> +    <string>Move Up</string>     </property>     <property name="toolTip"> -    <string>Make the selected package apply sooner.</string> +    <string>Make the selected component apply sooner.</string>     </property>    </action>    <action name="actionMove_down">     <property name="text"> -    <string>Move down</string> +    <string>Move Down</string>     </property>     <property name="toolTip"> -    <string>Make the selected package apply later.</string> +    <string>Make the selected component apply later.</string>     </property>    </action>    <action name="actionRemove"> @@ -143,7 +139,7 @@      <string>Remove</string>     </property>     <property name="toolTip"> -    <string>Remove selected package from the instance.</string> +    <string>Remove selected component from the instance.</string>     </property>    </action>    <action name="actionCustomize"> @@ -151,7 +147,7 @@      <string>Customize</string>     </property>     <property name="toolTip"> -    <string>Customize selected package.</string> +    <string>Customize selected component.</string>     </property>    </action>    <action name="actionEdit"> @@ -159,7 +155,7 @@      <string>Edit</string>     </property>     <property name="toolTip"> -    <string>Edit selected package.</string> +    <string>Edit selected component.</string>     </property>    </action>    <action name="actionRevert"> @@ -167,39 +163,15 @@      <string>Revert</string>     </property>     <property name="toolTip"> -    <string>Revert the selected package to default.</string> -   </property> -  </action> -  <action name="actionInstall_Forge"> -   <property name="text"> -    <string>Install Forge</string> -   </property> -   <property name="toolTip"> -    <string>Install the Minecraft Forge package.</string> -   </property> -  </action> -  <action name="actionInstall_Fabric"> -   <property name="text"> -    <string>Install Fabric</string> -   </property> -   <property name="toolTip"> -    <string>Install the Fabric Loader package.</string> -   </property> -  </action> -  <action name="actionInstall_Quilt"> -   <property name="text"> -    <string>Install Quilt</string> -   </property> -   <property name="toolTip"> -    <string>Install the Quilt Loader package.</string> +    <string>Revert the selected component to default.</string>     </property>    </action> -  <action name="actionInstall_LiteLoader"> +  <action name="actionInstall_Loader">     <property name="text"> -    <string>Install LiteLoader</string> +    <string>Install Loader</string>     </property>     <property name="toolTip"> -    <string>Install the LiteLoader package.</string> +    <string>Install a mod loader.</string>     </property>    </action>    <action name="actionAdd_to_Minecraft_jar"> @@ -228,7 +200,7 @@      <string>Add Empty</string>     </property>     <property name="toolTip"> -    <string>Add an empty custom package.</string> +    <string>Add an empty custom component.</string>     </property>    </action>    <action name="actionReload"> @@ -236,12 +208,12 @@      <string>Reload</string>     </property>     <property name="toolTip"> -    <string>Reload all packages.</string> +    <string>Reload all components.</string>     </property>    </action>    <action name="actionDownload_All">     <property name="text"> -    <string>Download All</string> +    <string>Download all</string>     </property>     <property name="toolTip">      <string>Download the files needed to launch the instance now.</string> | 
