summaryrefslogtreecommitdiffstats
path: root/gui/dialogs/OneSixModEditDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/dialogs/OneSixModEditDialog.cpp')
-rw-r--r--gui/dialogs/OneSixModEditDialog.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/gui/dialogs/OneSixModEditDialog.cpp b/gui/dialogs/OneSixModEditDialog.cpp
index 51ea2d19..3982f17d 100644
--- a/gui/dialogs/OneSixModEditDialog.cpp
+++ b/gui/dialogs/OneSixModEditDialog.cpp
@@ -38,6 +38,7 @@
#include "logic/EnabledItemFilter.h"
#include "logic/lists/ForgeVersionList.h"
#include "logic/ForgeInstaller.h"
+#include "logic/LiteLoaderInstaller.h"
OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent)
: QDialog(parent), ui(new Ui::OneSixModEditDialog), m_inst(inst)
@@ -95,6 +96,8 @@ void OneSixModEditDialog::updateVersionControls()
ui->customizeBtn->setEnabled(!customVersion);
ui->revertBtn->setEnabled(customVersion);
ui->forgeBtn->setEnabled(true);
+ ui->liteloaderBtn->setEnabled(LiteLoaderInstaller(m_inst->intendedVersionId()).canApply());
+ ui->customEditorBtn->setEnabled(customVersion);
}
void OneSixModEditDialog::disableVersionControls()
@@ -102,6 +105,8 @@ void OneSixModEditDialog::disableVersionControls()
ui->customizeBtn->setEnabled(false);
ui->revertBtn->setEnabled(false);
ui->forgeBtn->setEnabled(false);
+ ui->liteloaderBtn->setEnabled(false);
+ ui->customEditorBtn->setEnabled(false);
}
void OneSixModEditDialog::on_customizeBtn_clicked()
@@ -131,6 +136,17 @@ void OneSixModEditDialog::on_revertBtn_clicked()
}
}
+void OneSixModEditDialog::on_customEditorBtn_clicked()
+{
+ if (m_inst->versionIsCustom())
+ {
+ if (!MMC->openJsonEditor(m_inst->instanceRoot() + "/custom.json"))
+ {
+ QMessageBox::warning(this, tr("Error"), tr("Unable to open custom.json, check the settings"));
+ }
+ }
+}
+
void OneSixModEditDialog::on_forgeBtn_clicked()
{
VersionSelectDialog vselect(MMC->forgelist().get(), tr("Select Forge version"), this);
@@ -204,6 +220,32 @@ void OneSixModEditDialog::on_forgeBtn_clicked()
}
}
+void OneSixModEditDialog::on_liteloaderBtn_clicked()
+{
+ LiteLoaderInstaller liteloader(m_inst->intendedVersionId());
+ if (!liteloader.canApply())
+ {
+ QMessageBox::critical(
+ this, tr("LiteLoader"),
+ tr("There is no information available on how to install LiteLoader "
+ "into this version of Minecraft"));
+ return;
+ }
+ if (!m_inst->versionIsCustom())
+ {
+ m_inst->customizeVersion();
+ m_version = m_inst->getFullVersion();
+ main_model->setSourceModel(m_version.get());
+ updateVersionControls();
+ }
+ if (!liteloader.apply(m_version))
+ {
+ QMessageBox::critical(
+ this, tr("LiteLoader"),
+ tr("For reasons unknown, the LiteLoader installation failed. Check your MultiMC log files for details."));
+ }
+}
+
bool OneSixModEditDialog::loaderListFilter(QKeyEvent *keyEvent)
{
switch (keyEvent->key())