diff options
author | Petr Mrázek <peterix@gmail.com> | 2019-07-14 05:37:10 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2019-07-14 05:37:10 +0200 |
commit | e4273d6a174ffb771728f32b5e2a8a36096c4e21 (patch) | |
tree | 8f45da13031b43ffa04c45897bd19821c4ada87a /application/pages/instance/VersionPage.cpp | |
parent | 62e1bf327de27c050e62e897af432f2fd36c8551 (diff) | |
download | PrismLauncher-e4273d6a174ffb771728f32b5e2a8a36096c4e21.tar.gz PrismLauncher-e4273d6a174ffb771728f32b5e2a8a36096c4e21.tar.bz2 PrismLauncher-e4273d6a174ffb771728f32b5e2a8a36096c4e21.zip |
GH-358 Make version page use a toolbar for all the actions
This should make it possible to make it fit on small screens again.
Diffstat (limited to 'application/pages/instance/VersionPage.cpp')
-rw-r--r-- | application/pages/instance/VersionPage.cpp | 109 |
1 files changed, 66 insertions, 43 deletions
diff --git a/application/pages/instance/VersionPage.cpp b/application/pages/instance/VersionPage.cpp index f27d562a..ed300e77 100644 --- a/application/pages/instance/VersionPage.cpp +++ b/application/pages/instance/VersionPage.cpp @@ -16,8 +16,10 @@ #include "MultiMC.h" #include <QMessageBox> +#include <QLabel> #include <QEvent> #include <QKeyEvent> +#include <QMenu> #include "VersionPage.h" #include "ui_VersionPage.h" @@ -43,8 +45,6 @@ #include "Exception.h" #include "Version.h" -#include "MultiMC.h" - #include <meta/Index.h> #include <meta/VersionList.h> @@ -100,11 +100,33 @@ bool VersionPage::shouldDisplay() const return !m_inst->isRunning(); } +QMenu * VersionPage::createPopupMenu() +{ + QMenu* filteredMenu = QMainWindow::createPopupMenu(); + filteredMenu->removeAction( ui->toolBar->toggleViewAction() ); + return filteredMenu; +} + VersionPage::VersionPage(MinecraftInstance *inst, QWidget *parent) - : QWidget(parent), ui(new Ui::VersionPage), m_inst(inst) + : QMainWindow(parent), ui(new Ui::VersionPage), m_inst(inst) { ui->setupUi(this); - ui->tabWidget->tabBar()->hide(); + auto labelSelection = new QLabel(tr("Selection")); + labelSelection->setAlignment(Qt::AlignHCenter); + ui->toolBar->insertWidget(ui->actionChange_version, labelSelection); + + auto labelEdit = new QLabel(tr("Edit")); + labelEdit->setAlignment(Qt::AlignHCenter); + ui->toolBar->insertWidget(ui->actionCustomize, labelEdit); + + auto labelInstall = new QLabel(tr("Install")); + labelInstall->setAlignment(Qt::AlignHCenter); + ui->toolBar->insertWidget(ui->actionInstall_Forge, labelInstall); + + auto labelAdvanced = new QLabel(tr("Advanced")); + labelAdvanced->setAlignment(Qt::AlignHCenter); + ui->toolBar->insertWidget(ui->actionAdd_to_Minecraft_jar, labelAdvanced); + m_profile = m_inst->getComponentList(); reloadComponentList(); @@ -178,15 +200,16 @@ void VersionPage::updateVersionControls() auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft")); bool newCraft = minecraftVersion >= Version("1.14"); bool oldCraft = minecraftVersion <= Version("1.12.2"); - ui->fabricBtn->setEnabled(newCraft); - ui->forgeBtn->setEnabled(oldCraft); - ui->liteloaderBtn->setEnabled(oldCraft); + ui->actionInstall_Fabric->setEnabled(newCraft); + ui->actionInstall_Forge->setEnabled(oldCraft); + ui->actionInstall_LiteLoader->setEnabled(oldCraft); + ui->actionReload->setEnabled(true); } else { - ui->fabricBtn->setEnabled(false); - ui->forgeBtn->setEnabled(false); - ui->liteloaderBtn->setEnabled(false); - ui->reloadBtn->setEnabled(false); + ui->actionInstall_Fabric->setEnabled(false); + ui->actionInstall_Forge->setEnabled(false); + ui->actionInstall_LiteLoader->setEnabled(false); + ui->actionReload->setEnabled(false); } updateButtons(); } @@ -212,13 +235,13 @@ bool VersionPage::reloadComponentList() } } -void VersionPage::on_reloadBtn_clicked() +void VersionPage::on_actionReload_triggered() { reloadComponentList(); m_container->refreshContainer(); } -void VersionPage::on_removeBtn_clicked() +void VersionPage::on_actionRemove_triggered() { if (ui->packageView->currentIndex().isValid()) { @@ -233,7 +256,7 @@ void VersionPage::on_removeBtn_clicked() m_container->refreshContainer(); } -void VersionPage::on_modBtn_clicked() +void VersionPage::on_actionInstall_mods_triggered() { if(m_container) { @@ -241,7 +264,7 @@ void VersionPage::on_modBtn_clicked() } } -void VersionPage::on_jarmodBtn_clicked() +void VersionPage::on_actionAdd_to_Minecraft_jar_triggered() { auto list = GuiUtil::BrowseForFiles("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget()); if(!list.empty()) @@ -251,7 +274,7 @@ void VersionPage::on_jarmodBtn_clicked() updateButtons(); } -void VersionPage::on_jarBtn_clicked() +void VersionPage::on_actionReplace_Minecraft_jar_triggered() { auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget()); if(!jarPath.isEmpty()) @@ -261,7 +284,7 @@ void VersionPage::on_jarBtn_clicked() updateButtons(); } -void VersionPage::on_moveUpBtn_clicked() +void VersionPage::on_actionMove_up_triggered() { try { @@ -274,7 +297,7 @@ void VersionPage::on_moveUpBtn_clicked() updateButtons(); } -void VersionPage::on_moveDownBtn_clicked() +void VersionPage::on_actionMove_down_triggered() { try { @@ -287,7 +310,7 @@ void VersionPage::on_moveDownBtn_clicked() updateButtons(); } -void VersionPage::on_changeVersionBtn_clicked() +void VersionPage::on_actionChange_version_triggered() { auto versionRow = currentRow(); if(versionRow == -1) @@ -305,12 +328,12 @@ void VersionPage::on_changeVersionBtn_clicked() // FIXME: this is a horrible HACK. Get version filtering information from the actual metadata... if(uid == "net.minecraftforge") { - on_forgeBtn_clicked(); + on_actionInstall_Forge_triggered(); return; } else if (uid == "com.mumfrey.liteloader") { - on_liteloaderBtn_clicked(); + on_actionInstall_LiteLoader_triggered(); return; } VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this); @@ -339,7 +362,7 @@ void VersionPage::on_changeVersionBtn_clicked() m_container->refreshContainer(); } -void VersionPage::on_downloadBtn_clicked() +void VersionPage::on_actionDownload_triggered() { if (!MMC->accounts()->anyAccountIsValid()) { @@ -364,7 +387,7 @@ void VersionPage::on_downloadBtn_clicked() m_container->refreshContainer(); } -void VersionPage::on_forgeBtn_clicked() +void VersionPage::on_actionInstall_Forge_triggered() { auto vlist = ENV.metadataIndex()->get("net.minecraftforge"); if(!vlist) @@ -393,7 +416,7 @@ void VersionPage::on_forgeBtn_clicked() } } -void VersionPage::on_fabricBtn_clicked() +void VersionPage::on_actionInstall_Fabric_triggered() { auto vlist = ENV.metadataIndex()->get("net.fabricmc.fabric-loader"); if(!vlist) @@ -420,7 +443,7 @@ void VersionPage::on_fabricBtn_clicked() } } -void VersionPage::on_addEmptyBtn_clicked() +void VersionPage::on_actionAdd_Empty_triggered() { NewComponentDialog compdialog(QString(), QString(), this); QStringList blacklist; @@ -438,7 +461,7 @@ void VersionPage::on_addEmptyBtn_clicked() } } -void VersionPage::on_liteloaderBtn_clicked() +void VersionPage::on_actionInstall_LiteLoader_triggered() { auto vlist = ENV.metadataIndex()->get("com.mumfrey.liteloader"); if(!vlist) @@ -499,23 +522,23 @@ void VersionPage::updateButtons(int row) auto patch = m_profile->getComponent(row); if (!patch) { - ui->removeBtn->setDisabled(true); - ui->moveDownBtn->setDisabled(true); - ui->moveUpBtn->setDisabled(true); - ui->changeVersionBtn->setDisabled(true); - ui->editBtn->setDisabled(true); - ui->customizeBtn->setDisabled(true); - ui->revertBtn->setDisabled(true); + ui->actionRemove->setDisabled(true); + ui->actionMove_down->setDisabled(true); + ui->actionMove_up->setDisabled(true); + ui->actionChange_version->setDisabled(true); + ui->actionEdit->setDisabled(true); + ui->actionCustomize->setDisabled(true); + ui->actionRevert->setDisabled(true); } else { - ui->removeBtn->setEnabled(patch->isRemovable()); - ui->moveDownBtn->setEnabled(patch->isMoveable()); - ui->moveUpBtn->setEnabled(patch->isMoveable()); - ui->changeVersionBtn->setEnabled(patch->isVersionChangeable()); - ui->editBtn->setEnabled(patch->isCustom()); - ui->customizeBtn->setEnabled(patch->isCustomizable()); - ui->revertBtn->setEnabled(patch->isRevertible()); + ui->actionRemove->setEnabled(patch->isRemovable()); + ui->actionMove_down->setEnabled(patch->isMoveable()); + ui->actionMove_up->setEnabled(patch->isMoveable()); + ui->actionChange_version->setEnabled(patch->isVersionChangeable()); + ui->actionEdit->setEnabled(patch->isCustom()); + ui->actionCustomize->setEnabled(patch->isCustomizable()); + ui->actionRevert->setEnabled(patch->isRevertible()); } } @@ -544,7 +567,7 @@ int VersionPage::currentRow() return ui->packageView->selectionModel()->selectedRows().first().row(); } -void VersionPage::on_customizeBtn_clicked() +void VersionPage::on_actionCustomize_triggered() { auto version = currentRow(); if(version == -1) @@ -565,7 +588,7 @@ void VersionPage::on_customizeBtn_clicked() preselect(currentIdx); } -void VersionPage::on_editBtn_clicked() +void VersionPage::on_actionEdit_triggered() { auto version = current(); if(!version) @@ -581,7 +604,7 @@ void VersionPage::on_editBtn_clicked() MMC->openJsonEditor(filename); } -void VersionPage::on_revertBtn_clicked() +void VersionPage::on_actionRevert_triggered() { auto version = currentRow(); if(version == -1) |