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.
This commit is contained in:
Petr Mrázek 2019-07-14 05:37:10 +02:00
parent 62e1bf327d
commit e4273d6a17
3 changed files with 301 additions and 363 deletions

View File

@ -16,8 +16,10 @@
#include "MultiMC.h" #include "MultiMC.h"
#include <QMessageBox> #include <QMessageBox>
#include <QLabel>
#include <QEvent> #include <QEvent>
#include <QKeyEvent> #include <QKeyEvent>
#include <QMenu>
#include "VersionPage.h" #include "VersionPage.h"
#include "ui_VersionPage.h" #include "ui_VersionPage.h"
@ -43,8 +45,6 @@
#include "Exception.h" #include "Exception.h"
#include "Version.h" #include "Version.h"
#include "MultiMC.h"
#include <meta/Index.h> #include <meta/Index.h>
#include <meta/VersionList.h> #include <meta/VersionList.h>
@ -100,11 +100,33 @@ bool VersionPage::shouldDisplay() const
return !m_inst->isRunning(); return !m_inst->isRunning();
} }
QMenu * VersionPage::createPopupMenu()
{
QMenu* filteredMenu = QMainWindow::createPopupMenu();
filteredMenu->removeAction( ui->toolBar->toggleViewAction() );
return filteredMenu;
}
VersionPage::VersionPage(MinecraftInstance *inst, QWidget *parent) 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->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(); m_profile = m_inst->getComponentList();
reloadComponentList(); reloadComponentList();
@ -178,15 +200,16 @@ void VersionPage::updateVersionControls()
auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft")); auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft"));
bool newCraft = minecraftVersion >= Version("1.14"); bool newCraft = minecraftVersion >= Version("1.14");
bool oldCraft = minecraftVersion <= Version("1.12.2"); bool oldCraft = minecraftVersion <= Version("1.12.2");
ui->fabricBtn->setEnabled(newCraft); ui->actionInstall_Fabric->setEnabled(newCraft);
ui->forgeBtn->setEnabled(oldCraft); ui->actionInstall_Forge->setEnabled(oldCraft);
ui->liteloaderBtn->setEnabled(oldCraft); ui->actionInstall_LiteLoader->setEnabled(oldCraft);
ui->actionReload->setEnabled(true);
} }
else { else {
ui->fabricBtn->setEnabled(false); ui->actionInstall_Fabric->setEnabled(false);
ui->forgeBtn->setEnabled(false); ui->actionInstall_Forge->setEnabled(false);
ui->liteloaderBtn->setEnabled(false); ui->actionInstall_LiteLoader->setEnabled(false);
ui->reloadBtn->setEnabled(false); ui->actionReload->setEnabled(false);
} }
updateButtons(); updateButtons();
} }
@ -212,13 +235,13 @@ bool VersionPage::reloadComponentList()
} }
} }
void VersionPage::on_reloadBtn_clicked() void VersionPage::on_actionReload_triggered()
{ {
reloadComponentList(); reloadComponentList();
m_container->refreshContainer(); m_container->refreshContainer();
} }
void VersionPage::on_removeBtn_clicked() void VersionPage::on_actionRemove_triggered()
{ {
if (ui->packageView->currentIndex().isValid()) if (ui->packageView->currentIndex().isValid())
{ {
@ -233,7 +256,7 @@ void VersionPage::on_removeBtn_clicked()
m_container->refreshContainer(); m_container->refreshContainer();
} }
void VersionPage::on_modBtn_clicked() void VersionPage::on_actionInstall_mods_triggered()
{ {
if(m_container) 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()); 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()) if(!list.empty())
@ -251,7 +274,7 @@ void VersionPage::on_jarmodBtn_clicked()
updateButtons(); 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()); auto jarPath = GuiUtil::BrowseForFile("jar", tr("Select jar"), tr("Minecraft.jar replacement (*.jar)"), MMC->settings()->get("CentralModsDir").toString(), this->parentWidget());
if(!jarPath.isEmpty()) if(!jarPath.isEmpty())
@ -261,7 +284,7 @@ void VersionPage::on_jarBtn_clicked()
updateButtons(); updateButtons();
} }
void VersionPage::on_moveUpBtn_clicked() void VersionPage::on_actionMove_up_triggered()
{ {
try try
{ {
@ -274,7 +297,7 @@ void VersionPage::on_moveUpBtn_clicked()
updateButtons(); updateButtons();
} }
void VersionPage::on_moveDownBtn_clicked() void VersionPage::on_actionMove_down_triggered()
{ {
try try
{ {
@ -287,7 +310,7 @@ void VersionPage::on_moveDownBtn_clicked()
updateButtons(); updateButtons();
} }
void VersionPage::on_changeVersionBtn_clicked() void VersionPage::on_actionChange_version_triggered()
{ {
auto versionRow = currentRow(); auto versionRow = currentRow();
if(versionRow == -1) 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... // FIXME: this is a horrible HACK. Get version filtering information from the actual metadata...
if(uid == "net.minecraftforge") if(uid == "net.minecraftforge")
{ {
on_forgeBtn_clicked(); on_actionInstall_Forge_triggered();
return; return;
} }
else if (uid == "com.mumfrey.liteloader") else if (uid == "com.mumfrey.liteloader")
{ {
on_liteloaderBtn_clicked(); on_actionInstall_LiteLoader_triggered();
return; return;
} }
VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this); VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this);
@ -339,7 +362,7 @@ void VersionPage::on_changeVersionBtn_clicked()
m_container->refreshContainer(); m_container->refreshContainer();
} }
void VersionPage::on_downloadBtn_clicked() void VersionPage::on_actionDownload_triggered()
{ {
if (!MMC->accounts()->anyAccountIsValid()) if (!MMC->accounts()->anyAccountIsValid())
{ {
@ -364,7 +387,7 @@ void VersionPage::on_downloadBtn_clicked()
m_container->refreshContainer(); m_container->refreshContainer();
} }
void VersionPage::on_forgeBtn_clicked() void VersionPage::on_actionInstall_Forge_triggered()
{ {
auto vlist = ENV.metadataIndex()->get("net.minecraftforge"); auto vlist = ENV.metadataIndex()->get("net.minecraftforge");
if(!vlist) 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"); auto vlist = ENV.metadataIndex()->get("net.fabricmc.fabric-loader");
if(!vlist) 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); NewComponentDialog compdialog(QString(), QString(), this);
QStringList blacklist; 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"); auto vlist = ENV.metadataIndex()->get("com.mumfrey.liteloader");
if(!vlist) if(!vlist)
@ -499,23 +522,23 @@ void VersionPage::updateButtons(int row)
auto patch = m_profile->getComponent(row); auto patch = m_profile->getComponent(row);
if (!patch) if (!patch)
{ {
ui->removeBtn->setDisabled(true); ui->actionRemove->setDisabled(true);
ui->moveDownBtn->setDisabled(true); ui->actionMove_down->setDisabled(true);
ui->moveUpBtn->setDisabled(true); ui->actionMove_up->setDisabled(true);
ui->changeVersionBtn->setDisabled(true); ui->actionChange_version->setDisabled(true);
ui->editBtn->setDisabled(true); ui->actionEdit->setDisabled(true);
ui->customizeBtn->setDisabled(true); ui->actionCustomize->setDisabled(true);
ui->revertBtn->setDisabled(true); ui->actionRevert->setDisabled(true);
} }
else else
{ {
ui->removeBtn->setEnabled(patch->isRemovable()); ui->actionRemove->setEnabled(patch->isRemovable());
ui->moveDownBtn->setEnabled(patch->isMoveable()); ui->actionMove_down->setEnabled(patch->isMoveable());
ui->moveUpBtn->setEnabled(patch->isMoveable()); ui->actionMove_up->setEnabled(patch->isMoveable());
ui->changeVersionBtn->setEnabled(patch->isVersionChangeable()); ui->actionChange_version->setEnabled(patch->isVersionChangeable());
ui->editBtn->setEnabled(patch->isCustom()); ui->actionEdit->setEnabled(patch->isCustom());
ui->customizeBtn->setEnabled(patch->isCustomizable()); ui->actionCustomize->setEnabled(patch->isCustomizable());
ui->revertBtn->setEnabled(patch->isRevertible()); ui->actionRevert->setEnabled(patch->isRevertible());
} }
} }
@ -544,7 +567,7 @@ int VersionPage::currentRow()
return ui->packageView->selectionModel()->selectedRows().first().row(); return ui->packageView->selectionModel()->selectedRows().first().row();
} }
void VersionPage::on_customizeBtn_clicked() void VersionPage::on_actionCustomize_triggered()
{ {
auto version = currentRow(); auto version = currentRow();
if(version == -1) if(version == -1)
@ -565,7 +588,7 @@ void VersionPage::on_customizeBtn_clicked()
preselect(currentIdx); preselect(currentIdx);
} }
void VersionPage::on_editBtn_clicked() void VersionPage::on_actionEdit_triggered()
{ {
auto version = current(); auto version = current();
if(!version) if(!version)
@ -581,7 +604,7 @@ void VersionPage::on_editBtn_clicked()
MMC->openJsonEditor(filename); MMC->openJsonEditor(filename);
} }
void VersionPage::on_revertBtn_clicked() void VersionPage::on_actionRevert_triggered()
{ {
auto version = currentRow(); auto version = currentRow();
if(version == -1) if(version == -1)

View File

@ -15,7 +15,7 @@
#pragma once #pragma once
#include <QWidget> #include <QMainWindow>
#include "minecraft/MinecraftInstance.h" #include "minecraft/MinecraftInstance.h"
#include "minecraft/ComponentList.h" #include "minecraft/ComponentList.h"
@ -26,7 +26,7 @@ namespace Ui
class VersionPage; class VersionPage;
} }
class VersionPage : public QWidget, public BasePage class VersionPage : public QMainWindow, public BasePage
{ {
Q_OBJECT Q_OBJECT
@ -49,24 +49,24 @@ public:
virtual bool shouldDisplay() const override; virtual bool shouldDisplay() const override;
private slots: private slots:
void on_fabricBtn_clicked(); void on_actionChange_version_triggered();
void on_forgeBtn_clicked(); void on_actionInstall_Forge_triggered();
void on_addEmptyBtn_clicked(); void on_actionInstall_Fabric_triggered();
void on_liteloaderBtn_clicked(); void on_actionAdd_Empty_triggered();
void on_reloadBtn_clicked(); void on_actionInstall_LiteLoader_triggered();
void on_removeBtn_clicked(); void on_actionReload_triggered();
void on_moveUpBtn_clicked(); void on_actionRemove_triggered();
void on_moveDownBtn_clicked(); void on_actionMove_up_triggered();
void on_jarmodBtn_clicked(); void on_actionMove_down_triggered();
void on_jarBtn_clicked(); void on_actionAdd_to_Minecraft_jar_triggered();
void on_revertBtn_clicked(); void on_actionReplace_Minecraft_jar_triggered();
void on_editBtn_clicked(); void on_actionRevert_triggered();
void on_modBtn_clicked(); void on_actionEdit_triggered();
void on_customizeBtn_clicked(); void on_actionInstall_mods_triggered();
void on_downloadBtn_clicked(); void on_actionCustomize_triggered();
void on_actionDownload_triggered();
void updateVersionControls(); void updateVersionControls();
void on_changeVersionBtn_clicked();
private: private:
Component * current(); Component * current();
@ -76,6 +76,8 @@ private:
int doUpdate(); int doUpdate();
protected: protected:
QMenu * createPopupMenu() override;
/// FIXME: this shouldn't be necessary! /// FIXME: this shouldn't be necessary!
bool reloadComponentList(); bool reloadComponentList();

View File

@ -1,292 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>VersionPage</class> <class>VersionPage</class>
<widget class="QWidget" name="VersionPage"> <widget class="QMainWindow" name="VersionPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>870</width> <width>961</width>
<height>1008</height> <height>1091</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <property name="windowTitle">
<property name="leftMargin"> <string>MainWindow</string>
<number>0</number> </property>
<widget class="QWidget" name="centralwidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="ModListView" name="packageView">
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sortingEnabled">
<bool>false</bool>
</property>
<property name="headerHidden">
<bool>false</bool>
</property>
<attribute name="headerVisible">
<bool>true</bool>
</attribute>
</widget>
</item>
<item>
<widget class="MCModInfoFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QToolBar" name="toolBar">
<property name="windowTitle">
<string>toolBar</string>
</property> </property>
<property name="topMargin"> <property name="allowedAreas">
<number>0</number> <set>Qt::LeftToolBarArea|Qt::RightToolBarArea</set>
</property> </property>
<property name="rightMargin"> <property name="toolButtonStyle">
<number>0</number> <enum>Qt::ToolButtonTextOnly</enum>
</property> </property>
<property name="bottomMargin"> <property name="floatable">
<number>0</number> <bool>false</bool>
</property> </property>
<item> <attribute name="toolBarArea">
<widget class="QTabWidget" name="tabWidget"> <enum>RightToolBarArea</enum>
<property name="currentIndex"> </attribute>
<number>0</number> <attribute name="toolBarBreak">
</property> <bool>false</bool>
<widget class="QWidget" name="tab"> </attribute>
<attribute name="title"> <addaction name="actionChange_version"/>
<string notr="true">Tab 1</string> <addaction name="actionMove_up"/>
</attribute> <addaction name="actionMove_down"/>
<layout class="QGridLayout" name="gridLayout"> <addaction name="actionRemove"/>
<item row="0" column="0"> <addaction name="separator"/>
<widget class="ModListView" name="packageView"> <addaction name="actionCustomize"/>
<property name="verticalScrollBarPolicy"> <addaction name="actionEdit"/>
<enum>Qt::ScrollBarAlwaysOn</enum> <addaction name="actionRevert"/>
</property> <addaction name="separator"/>
<property name="horizontalScrollBarPolicy"> <addaction name="actionInstall_Forge"/>
<enum>Qt::ScrollBarAlwaysOff</enum> <addaction name="actionInstall_Fabric"/>
</property> <addaction name="actionInstall_LiteLoader"/>
<property name="sortingEnabled"> <addaction name="actionInstall_mods"/>
<bool>false</bool> <addaction name="separator"/>
</property> <addaction name="actionAdd_to_Minecraft_jar"/>
<property name="headerHidden"> <addaction name="actionReplace_Minecraft_jar"/>
<bool>false</bool> <addaction name="actionAdd_Empty"/>
</property> <addaction name="actionReload"/>
<attribute name="headerVisible"> <addaction name="actionDownload_All"/>
<bool>true</bool> </widget>
</attribute> <action name="actionChange_version">
</widget> <property name="text">
</item> <string>Change version</string>
<item row="0" column="1"> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <property name="toolTip">
<item> <string>Change version of the selected package.</string>
<widget class="QLabel" name="label"> </property>
<property name="text"> </action>
<string>Selection</string> <action name="actionMove_up">
</property> <property name="text">
<property name="alignment"> <string>Move up</string>
<set>Qt::AlignCenter</set> </property>
</property> <property name="toolTip">
</widget> <string>Make the selected package apply sooner.</string>
</item> </property>
<item> </action>
<widget class="QPushButton" name="changeVersionBtn"> <action name="actionMove_down">
<property name="toolTip"> <property name="text">
<string>Change version of the selected package.</string> <string>Move down</string>
</property> </property>
<property name="text"> <property name="toolTip">
<string>Change version</string> <string>Make the selected package apply later.</string>
</property> </property>
</widget> </action>
</item> <action name="actionRemove">
<item> <property name="text">
<widget class="QPushButton" name="moveUpBtn"> <string>Remove</string>
<property name="toolTip"> </property>
<string>Make the selected package apply sooner.</string> <property name="toolTip">
</property> <string>Remove selected package from the instance.</string>
<property name="text"> </property>
<string>Move up</string> </action>
</property> <action name="actionCustomize">
</widget> <property name="text">
</item> <string>Customize</string>
<item> </property>
<widget class="QPushButton" name="moveDownBtn"> <property name="toolTip">
<property name="toolTip"> <string>Customize selected package.</string>
<string>Make the selected package apply later.</string> </property>
</property> </action>
<property name="text"> <action name="actionEdit">
<string>Move down</string> <property name="text">
</property> <string>Edit</string>
</widget> </property>
</item> <property name="toolTip">
<item> <string>Edit selected package.</string>
<widget class="QPushButton" name="removeBtn"> </property>
<property name="toolTip"> </action>
<string>Remove selected package from the instance.</string> <action name="actionRevert">
</property> <property name="text">
<property name="text"> <string>Revert</string>
<string>Remove</string> </property>
</property> <property name="toolTip">
</widget> <string>Revert the selected package to default.</string>
</item> </property>
<item> </action>
<widget class="LineSeparator" name="separator_4" native="true"/> <action name="actionInstall_Forge">
</item> <property name="text">
<item> <string>Install Forge</string>
<widget class="QLabel" name="label_10"> </property>
<property name="text"> <property name="toolTip">
<string>Edit</string> <string>Install the Minecraft Forge package.</string>
</property> </property>
<property name="alignment"> </action>
<set>Qt::AlignCenter</set> <action name="actionInstall_Fabric">
</property> <property name="text">
</widget> <string>Install Fabric</string>
</item> </property>
<item> <property name="toolTip">
<widget class="QPushButton" name="customizeBtn"> <string>Install the Fabric Loader package.</string>
<property name="toolTip"> </property>
<string>Customize selected package.</string> </action>
</property> <action name="actionInstall_LiteLoader">
<property name="text"> <property name="text">
<string>Customize</string> <string>Install LiteLoader</string>
</property> </property>
</widget> <property name="toolTip">
</item> <string>Install the LiteLoader package.</string>
<item> </property>
<widget class="QPushButton" name="editBtn"> </action>
<property name="toolTip"> <action name="actionInstall_mods">
<string>Edit selected package.</string> <property name="text">
</property> <string>Install mods</string>
<property name="text"> </property>
<string>Edit</string> <property name="toolTip">
</property> <string>Install normal mods.</string>
</widget> </property>
</item> </action>
<item> <action name="actionAdd_to_Minecraft_jar">
<widget class="QPushButton" name="revertBtn"> <property name="text">
<property name="toolTip"> <string>Add to Minecraft.jar</string>
<string>Revert the selected package to default.</string> </property>
</property> <property name="toolTip">
<property name="text"> <string>Add a mod into the Minecraft jar file.</string>
<string>Revert</string> </property>
</property> </action>
</widget> <action name="actionReplace_Minecraft_jar">
</item> <property name="text">
<item> <string>Replace Minecraft.jar</string>
<widget class="LineSeparator" name="separator" native="true"/> </property>
</item> </action>
<item> <action name="actionAdd_Empty">
<widget class="QLabel" name="label_2"> <property name="text">
<property name="text"> <string>Add Empty</string>
<string>Install</string> </property>
</property> <property name="toolTip">
<property name="alignment"> <string>Add an empty custom package.</string>
<set>Qt::AlignCenter</set> </property>
</property> </action>
</widget> <action name="actionReload">
</item> <property name="text">
<item> <string>Reload</string>
<widget class="QPushButton" name="forgeBtn"> </property>
<property name="toolTip"> <property name="toolTip">
<string>Install the Minecraft Forge package.</string> <string>Reload all packages.</string>
</property> </property>
<property name="text"> </action>
<string>Install Forge</string> <action name="actionDownload_All">
</property> <property name="text">
</widget> <string>Download All</string>
</item> </property>
<item> <property name="toolTip">
<widget class="QPushButton" name="fabricBtn"> <string>Download the files needed to launch the instance now.</string>
<property name="toolTip"> </property>
<string>Install the Fabric Loader package.</string> </action>
</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>
</property>
<property name="text">
<string>Install LiteLoader</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="modBtn">
<property name="toolTip">
<string>Install normal mods.</string>
</property>
<property name="text">
<string>Install mods</string>
</property>
</widget>
</item>
<item>
<widget class="LineSeparator" name="widget" native="true"/>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Advanced</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="jarmodBtn">
<property name="toolTip">
<string>Add a mod into the Minecraft jar file.</string>
</property>
<property name="text">
<string>Add to Minecraft.jar</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="jarBtn">
<property name="text">
<string>Replace Minecraft.jar</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addEmptyBtn">
<property name="text">
<string>Add Empty</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="reloadBtn">
<property name="toolTip">
<string>Reload all packages.</string>
</property>
<property name="text">
<string>Reload</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="downloadBtn">
<property name="toolTip">
<string>Download the files needed to launch the instance now.</string>
</property>
<property name="text">
<string>Download All</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>111</width>
<height>13</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<widget class="MCModInfoFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
@ -294,12 +233,6 @@
<extends>QTreeView</extends> <extends>QTreeView</extends>
<header>widgets/ModListView.h</header> <header>widgets/ModListView.h</header>
</customwidget> </customwidget>
<customwidget>
<class>LineSeparator</class>
<extends>QWidget</extends>
<header>widgets/LineSeparator.h</header>
<container>1</container>
</customwidget>
<customwidget> <customwidget>
<class>MCModInfoFrame</class> <class>MCModInfoFrame</class>
<extends>QFrame</extends> <extends>QFrame</extends>
@ -307,26 +240,6 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<tabstops>
<tabstop>tabWidget</tabstop>
<tabstop>packageView</tabstop>
<tabstop>changeVersionBtn</tabstop>
<tabstop>moveUpBtn</tabstop>
<tabstop>moveDownBtn</tabstop>
<tabstop>removeBtn</tabstop>
<tabstop>customizeBtn</tabstop>
<tabstop>editBtn</tabstop>
<tabstop>revertBtn</tabstop>
<tabstop>forgeBtn</tabstop>
<tabstop>fabricBtn</tabstop>
<tabstop>liteloaderBtn</tabstop>
<tabstop>modBtn</tabstop>
<tabstop>jarmodBtn</tabstop>
<tabstop>jarBtn</tabstop>
<tabstop>addEmptyBtn</tabstop>
<tabstop>reloadBtn</tabstop>
<tabstop>downloadBtn</tabstop>
</tabstops>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>