aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-04-23 02:27:40 +0200
committerPetr Mrázek <peterix@gmail.com>2014-06-09 01:38:29 +0200
commitaade36860c373268857ca821c14a13f38c880b1a (patch)
tree464b804216c7eadc00941daa33a1713c8071a088
parent3a0cdf2d3dde6192694ca34429ab277608357c2a (diff)
downloadPrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.tar.gz
PrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.tar.bz2
PrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.zip
Begin the transformation!
Nuke all the things.
-rw-r--r--CMakeLists.txt53
-rw-r--r--MultiMC.cpp5
-rw-r--r--gui/MainWindow.cpp97
-rw-r--r--gui/MainWindow.h10
-rw-r--r--gui/MainWindow.ui83
-rw-r--r--gui/dialogs/InstanceEditDialog.cpp (renamed from gui/dialogs/OneSixModEditDialog.cpp)304
-rw-r--r--gui/dialogs/InstanceEditDialog.h (renamed from gui/dialogs/OneSixModEditDialog.h)48
-rw-r--r--gui/dialogs/InstanceEditDialog.ui (renamed from gui/dialogs/OneSixModEditDialog.ui)124
-rw-r--r--gui/dialogs/LegacyModEditDialog.cpp393
-rw-r--r--gui/dialogs/LegacyModEditDialog.h78
-rw-r--r--gui/dialogs/LegacyModEditDialog.ui321
-rw-r--r--gui/dialogs/ModEditDialogCommon.cpp57
-rw-r--r--gui/dialogs/ModEditDialogCommon.h22
-rw-r--r--logic/BaseInstaller.h2
-rw-r--r--logic/BaseVersion.h4
-rw-r--r--logic/InstanceFactory.cpp52
-rw-r--r--logic/LegacyInstance.cpp11
-rw-r--r--logic/LegacyUpdate.cpp65
-rw-r--r--logic/LegacyUpdate.h9
-rw-r--r--logic/MinecraftVersion.h45
-rw-r--r--logic/NostalgiaInstance.cpp36
-rw-r--r--logic/NostalgiaInstance.h29
-rw-r--r--logic/OneSixFTBInstance.cpp4
-rw-r--r--logic/OneSixInstance.cpp64
-rw-r--r--logic/OneSixInstance.h11
-rw-r--r--logic/OneSixInstance_p.h3
-rw-r--r--logic/OneSixLibrary.h2
-rw-r--r--logic/OneSixUpdate.cpp2
-rw-r--r--logic/OneSixVersionBuilder.cpp10
-rw-r--r--logic/OneSixVersionBuilder.h5
-rw-r--r--logic/VersionFile.cpp84
-rw-r--r--logic/VersionFile.h19
-rw-r--r--logic/VersionFinal.cpp75
-rw-r--r--logic/VersionFinal.h32
-rw-r--r--logic/forge/ForgeData.cpp62
-rw-r--r--logic/forge/ForgeData.h21
-rw-r--r--logic/forge/ForgeInstaller.cpp (renamed from logic/ForgeInstaller.cpp)180
-rw-r--r--logic/forge/ForgeInstaller.h (renamed from logic/ForgeInstaller.h)20
-rw-r--r--logic/forge/ForgeMirror.h (renamed from logic/net/ForgeMirror.h)0
-rw-r--r--logic/forge/ForgeMirrors.cpp (renamed from logic/net/ForgeMirrors.cpp)0
-rw-r--r--logic/forge/ForgeMirrors.h (renamed from logic/net/ForgeMirrors.h)8
-rw-r--r--logic/forge/ForgeVersion.cpp55
-rw-r--r--logic/forge/ForgeVersion.h31
-rw-r--r--logic/forge/ForgeVersionList.cpp (renamed from logic/lists/ForgeVersionList.cpp)26
-rw-r--r--logic/forge/ForgeVersionList.h (renamed from logic/lists/ForgeVersionList.h)51
-rw-r--r--logic/forge/ForgeXzDownload.cpp (renamed from logic/net/ForgeXzDownload.cpp)0
-rw-r--r--logic/forge/ForgeXzDownload.h (renamed from logic/net/ForgeXzDownload.h)4
-rw-r--r--logic/forge/LegacyForge.cpp (renamed from logic/LegacyForge.cpp)0
-rw-r--r--logic/forge/LegacyForge.h (renamed from logic/LegacyForge.h)2
-rw-r--r--logic/lists/MinecraftVersionList.cpp16
-rw-r--r--logic/liteloader/LiteLoaderInstaller.cpp (renamed from logic/LiteLoaderInstaller.cpp)8
-rw-r--r--logic/liteloader/LiteLoaderInstaller.h (renamed from logic/LiteLoaderInstaller.h)5
-rw-r--r--logic/liteloader/LiteLoaderVersionList.cpp (renamed from logic/lists/LiteLoaderVersionList.cpp)0
-rw-r--r--logic/liteloader/LiteLoaderVersionList.h (renamed from logic/lists/LiteLoaderVersionList.h)4
-rw-r--r--logic/net/NetJob.h2
55 files changed, 1065 insertions, 1589 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 345bb366..4617020a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -309,12 +309,8 @@ SET(MULTIMC_SOURCES
gui/dialogs/InstanceSettings.cpp
gui/dialogs/IconPickerDialog.h
gui/dialogs/IconPickerDialog.cpp
- gui/dialogs/LegacyModEditDialog.h
- gui/dialogs/LegacyModEditDialog.cpp
- gui/dialogs/OneSixModEditDialog.h
- gui/dialogs/OneSixModEditDialog.cpp
- gui/dialogs/ModEditDialogCommon.h
- gui/dialogs/ModEditDialogCommon.cpp
+ gui/dialogs/InstanceEditDialog.h
+ gui/dialogs/InstanceEditDialog.cpp
gui/dialogs/EditNotesDialog.h
gui/dialogs/EditNotesDialog.cpp
gui/dialogs/CustomMessageBox.h
@@ -395,10 +391,6 @@ SET(MULTIMC_SOURCES
logic/net/ByteArrayDownload.cpp
logic/net/CacheDownload.h
logic/net/CacheDownload.cpp
- logic/net/ForgeMirrors.h
- logic/net/ForgeMirrors.cpp
- logic/net/ForgeXzDownload.h
- logic/net/ForgeXzDownload.cpp
logic/net/NetJob.h
logic/net/NetJob.cpp
logic/net/HttpMetaCache.h
@@ -449,9 +441,6 @@ SET(MULTIMC_SOURCES
logic/LegacyUpdate.h
logic/LegacyUpdate.cpp
- logic/LegacyForge.h
- logic/LegacyForge.cpp
-
# OneSix instances
logic/OneSixUpdate.h
logic/OneSixUpdate.cpp
@@ -476,14 +465,6 @@ SET(MULTIMC_SOURCES
# Mod installers
logic/BaseInstaller.h
logic/BaseInstaller.cpp
- logic/ForgeInstaller.h
- logic/ForgeInstaller.cpp
- logic/LiteLoaderInstaller.h
- logic/LiteLoaderInstaller.cpp
-
- # Nostalgia
- logic/NostalgiaInstance.h
- logic/NostalgiaInstance.cpp
# FTB
logic/OneSixFTBInstance.h
@@ -500,12 +481,8 @@ SET(MULTIMC_SOURCES
logic/lists/MinecraftVersionList.cpp
logic/lists/LwjglVersionList.h
logic/lists/LwjglVersionList.cpp
- logic/lists/ForgeVersionList.h
- logic/lists/ForgeVersionList.cpp
logic/lists/JavaVersionList.h
logic/lists/JavaVersionList.cpp
- logic/lists/LiteLoaderVersionList.h
- logic/lists/LiteLoaderVersionList.cpp
# the screenshots feature
logic/screenshots/Screenshot.h
@@ -566,6 +543,29 @@ SET(MULTIMC_SOURCES
logic/tools/JProfiler.cpp
logic/tools/JVisualVM.h
logic/tools/JVisualVM.cpp
+
+ # Forge and all things forge related
+ logic/forge/ForgeData.h
+ logic/forge/ForgeData.cpp
+ logic/forge/ForgeVersion.h
+ logic/forge/ForgeVersion.cpp
+ logic/forge/ForgeVersionList.h
+ logic/forge/ForgeVersionList.cpp
+ logic/forge/ForgeMirror.h
+ logic/forge/ForgeMirrors.h
+ logic/forge/ForgeMirrors.cpp
+ logic/forge/ForgeXzDownload.h
+ logic/forge/ForgeXzDownload.cpp
+ logic/forge/LegacyForge.h
+ logic/forge/LegacyForge.cpp
+ logic/forge/ForgeInstaller.h
+ logic/forge/ForgeInstaller.cpp
+
+ # Liteloader and related things
+ logic/liteloader/LiteLoaderInstaller.h
+ logic/liteloader/LiteLoaderInstaller.cpp
+ logic/liteloader/LiteLoaderVersionList.h
+ logic/liteloader/LiteLoaderVersionList.cpp
)
@@ -585,8 +585,7 @@ SET(MULTIMC_UIS
gui/dialogs/InstanceSettings.ui
gui/dialogs/ProgressDialog.ui
gui/dialogs/IconPickerDialog.ui
- gui/dialogs/LegacyModEditDialog.ui
- gui/dialogs/OneSixModEditDialog.ui
+ gui/dialogs/InstanceEditDialog.ui
gui/dialogs/EditNotesDialog.ui
gui/dialogs/AccountListDialog.ui
gui/dialogs/AccountSelectDialog.ui
diff --git a/MultiMC.cpp b/MultiMC.cpp
index c1fc089c..28fe8e26 100644
--- a/MultiMC.cpp
+++ b/MultiMC.cpp
@@ -17,8 +17,9 @@
#include "logic/icons/IconList.h"
#include "logic/lists/LwjglVersionList.h"
#include "logic/lists/MinecraftVersionList.h"
-#include "logic/lists/ForgeVersionList.h"
-#include "logic/lists/LiteLoaderVersionList.h"
+#include "logic/liteloader/LiteLoaderVersionList.h"
+
+#include "logic/forge/ForgeVersionList.h"
#include "logic/news/NewsChecker.h"
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index 5ba05b2a..95f2ac4c 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -1032,7 +1032,7 @@ void MainWindow::on_actionViewSelectedInstFolder_triggered()
}
}
-void MainWindow::on_actionEditInstMods_triggered()
+void MainWindow::on_actionEditInstance_triggered()
{
if (m_selectedInstance)
{
@@ -1339,99 +1339,12 @@ void MainWindow::startTask(Task *task)
task->start();
}
-// Create A Desktop Shortcut
-void MainWindow::on_actionMakeDesktopShortcut_triggered()
-{
- QString name("Test");
- name = QInputDialog::getText(this, tr("MultiMC Shortcut"), tr("Enter a Shortcut Name."),
- QLineEdit::Normal, name);
-
- Util::createShortCut(Util::getDesktopDir(), QApplication::instance()->applicationFilePath(),
- QStringList() << "-dl" << QDir::currentPath() << "test", name,
- "application-x-octet-stream");
-
- CustomMessageBox::selectable(
- this, tr("Not useful"),
- tr("A Dummy Shortcut was created. it will not do anything productive"),
- QMessageBox::Warning)->show();
-}
-
// BrowserDialog
void MainWindow::openWebPage(QUrl url)
{
QDesktopServices::openUrl(url);
}
-void MainWindow::on_actionChangeInstMCVersion_triggered()
-{
- if (view->selectionModel()->selectedIndexes().count() < 1)
- return;
-
- VersionSelectDialog vselect(m_selectedInstance->versionList().get(),
- tr("Change Minecraft version"), this);
- vselect.setFuzzyFilter(1, "*OneSix*");
- if (!vselect.exec() || !vselect.selectedVersion())
- return;
-
- if (!MMC->accounts()->anyAccountIsValid())
- {
- CustomMessageBox::selectable(
- this, tr("Error"),
- tr("MultiMC cannot download Minecraft or update instances unless you have at least "
- "one account added.\nPlease add your Mojang or Minecraft account."),
- QMessageBox::Warning)->show();
- return;
- }
-
- if (m_selectedInstance->versionIsCustom())
- {
- auto result = CustomMessageBox::selectable(
- this, tr("Are you sure?"),
- tr("This will remove any library/version customization you did previously. "
- "This includes things like Forge install and similar."),
- QMessageBox::Warning, QMessageBox::Ok | QMessageBox::Abort,
- QMessageBox::Abort)->exec();
-
- if (result != QMessageBox::Ok)
- return;
- }
- m_selectedInstance->setIntendedVersionId(vselect.selectedVersion()->descriptor());
-
- auto updateTask = m_selectedInstance->doUpdate();
- if (!updateTask)
- {
- return;
- }
- ProgressDialog tDialog(this);
- connect(updateTask.get(), SIGNAL(failed(QString)), SLOT(onGameUpdateError(QString)));
- tDialog.exec(updateTask.get());
-}
-
-void MainWindow::on_actionChangeInstLWJGLVersion_triggered()
-{
- if (!m_selectedInstance)
- return;
-
- LWJGLSelectDialog lselect(this);
- lselect.exec();
- if (lselect.result() == QDialog::Accepted)
- {
- auto ptr = std::dynamic_pointer_cast<LegacyInstance>(m_selectedInstance);
- if(ptr)
- ptr->setLWJGLVersion(lselect.selectedVersion());
- }
-}
-
-void MainWindow::on_actionInstanceSettings_triggered()
-{
- if (view->selectionModel()->selectedIndexes().count() < 1)
- return;
-
- InstanceSettings settings(&m_selectedInstance->settings(), this);
- settings.setWindowTitle(tr("Instance settings"));
- settings.exec();
-}
-
void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &previous)
{
if(!current.isValid())
@@ -1446,12 +1359,8 @@ void MainWindow::instanceChanged(const QModelIndex &current, const QModelIndex &
{
ui->instanceToolBar->setEnabled(m_selectedInstance->canLaunch());
renameButton->setText(m_selectedInstance->name());
- ui->actionChangeInstLWJGLVersion->setEnabled(
- m_selectedInstance->menuActionEnabled("actionChangeInstLWJGLVersion"));
- ui->actionEditInstMods->setEnabled(
- m_selectedInstance->menuActionEnabled("actionEditInstMods"));
- ui->actionChangeInstMCVersion->setEnabled(
- m_selectedInstance->menuActionEnabled("actionChangeInstMCVersion"));
+ ui->actionEditInstance->setEnabled(
+ m_selectedInstance->menuActionEnabled("actionEditInstance"));
m_statusLeft->setText(m_selectedInstance->getStatusbarDescription());
updateInstanceToolIcon(m_selectedInstance->iconKey());
diff --git a/gui/MainWindow.h b/gui/MainWindow.h
index 69cf11b0..0cd2e84b 100644
--- a/gui/MainWindow.h
+++ b/gui/MainWindow.h
@@ -103,11 +103,7 @@ slots:
void on_actionRenameInstance_triggered();
- void on_actionMakeDesktopShortcut_triggered();
-
- void on_actionChangeInstMCVersion_triggered();
-
- void on_actionEditInstMods_triggered();
+ void on_actionEditInstance_triggered();
void on_actionEditInstNotes_triggered();
@@ -135,12 +131,8 @@ slots:
void taskStart();
void taskEnd();
- void on_actionChangeInstLWJGLVersion_triggered();
-
void instanceEnded();
- void on_actionInstanceSettings_triggered();
-
// called when an icon is changed in the icon model.
void iconUpdated(QString);
diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui
index 1d7fbec9..8ee196fd 100644
--- a/gui/MainWindow.ui
+++ b/gui/MainWindow.ui
@@ -74,7 +74,7 @@
<addaction name="actionReportBug"/>
<addaction name="actionAbout"/>
<addaction name="separator"/>
- <addaction name="actionPatreon"/>
+ <addaction name="actionPatreon"/>
<addaction name="actionCAT"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
@@ -115,10 +115,7 @@
<addaction name="separator"/>
<addaction name="actionScreenshots"/>
<addaction name="separator"/>
- <addaction name="actionInstanceSettings"/>
- <addaction name="actionChangeInstMCVersion"/>
- <addaction name="actionChangeInstLWJGLVersion"/>
- <addaction name="actionEditInstMods"/>
+ <addaction name="actionEditInstance"/>
<addaction name="actionViewSelectedInstFolder"/>
<addaction name="actionConfig_Folder"/>
<addaction name="separator"/>
@@ -284,7 +281,7 @@
<property name="statusTip">
<string>Open the MultiMC Patreon page.</string>
</property>
- </action>
+ </action>
<action name="actionMoreNews">
<property name="icon">
<iconset theme="news">
@@ -388,82 +385,18 @@
<string>Edit the notes for the selected instance.</string>
</property>
</action>
- <action name="actionInstanceSettings">
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Settings</string>
- </property>
- <property name="toolTip">
- <string>Change settings for the selected instance.</string>
- </property>
- <property name="statusTip">
- <string>Change settings for the selected instance.</string>
- </property>
- </action>
- <action name="actionMakeDesktopShortcut">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Make Shortcut</string>
- </property>
- <property name="toolTip">
- <string>Make a shortcut on the desktop for the selected instance.</string>
- </property>
- <property name="statusTip">
- <string>Make a shortcut on the desktop for the selected instance.</string>
- </property>
- </action>
- <action name="actionManageInstSaves">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Manage Saves</string>
- </property>
- <property name="toolTip">
- <string>Manage saves for the selected instance.</string>
- </property>
- <property name="statusTip">
- <string>Manage saves for the selected instance.</string>
- </property>
- </action>
- <action name="actionEditInstMods">
+ <action name="actionEditInstance">
<property name="text">
<string>Edit Mods</string>
</property>
- <property name="toolTip">
- <string>Edit the mods for the selected instance.</string>
- </property>
- <property name="statusTip">
- <string>Edit the mods for the selected instance.</string>
- </property>
- </action>
- <action name="actionChangeInstMCVersion">
- <property name="text">
- <string>Change Version</string>
- </property>
- <property name="toolTip">
- <string>Change the selected instance's Minecraft version.</string>
- </property>
- <property name="statusTip">
- <string>Change the selected instance's Minecraft version.</string>
- </property>
- </action>
- <action name="actionChangeInstLWJGLVersion">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Change LWJGL</string>
+ <property name="iconText">
+ <string>Edit Instance</string>
</property>
<property name="toolTip">
- <string>Change the version of LWJGL for the selected instance to use.</string>
+ <string>Change the instance settings, mods and versions.</string>
</property>
<property name="statusTip">
- <string>Change the version of LWJGL for the selected instance to use.</string>
+ <string>Change the instance settings, mods and versions.</string>
</property>
</action>
<action name="actionViewSelectedInstFolder">
diff --git a/gui/dialogs/OneSixModEditDialog.cpp b/gui/dialogs/InstanceEditDialog.cpp
index a3598eb9..fe2d1b03 100644
--- a/gui/dialogs/OneSixModEditDialog.cpp
+++ b/gui/dialogs/InstanceEditDialog.cpp
@@ -23,27 +23,74 @@
#include <QKeyEvent>
#include <QDesktopServices>
-#include "OneSixModEditDialog.h"
-#include "ModEditDialogCommon.h"
-#include "ui_OneSixModEditDialog.h"
+#include "InstanceEditDialog.h"
+#include "ui_InstanceEditDialog.h"
#include "gui/Platform.h"
#include "gui/dialogs/CustomMessageBox.h"
#include "gui/dialogs/VersionSelectDialog.h"
#include "gui/dialogs/ProgressDialog.h"
+#include "InstanceSettings.h"
#include "logic/ModList.h"
#include "logic/VersionFinal.h"
#include "logic/EnabledItemFilter.h"
-#include "logic/lists/ForgeVersionList.h"
-#include "logic/lists/LiteLoaderVersionList.h"
-#include "logic/ForgeInstaller.h"
-#include "logic/LiteLoaderInstaller.h"
+#include "logic/forge/ForgeVersionList.h"
+#include "logic/forge/ForgeInstaller.h"
+#include "logic/liteloader/LiteLoaderVersionList.h"
+#include "logic/liteloader/LiteLoaderInstaller.h"
#include "logic/OneSixVersionBuilder.h"
+#include "logic/auth/MojangAccountList.h"
-OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent)
- : QDialog(parent), ui(new Ui::OneSixModEditDialog), m_inst(inst)
+#include <QAbstractItemModel>
+#include <logic/Mod.h>
+
+#include "CustomMessageBox.h"
+#include <QDesktopServices>
+#include <QMessageBox>
+#include <QString>
+#include <QUrl>
+
+bool lastfirst(QModelIndexList &list, int &first, int &last)
+{
+ if (!list.size())
+ return false;
+ first = last = list[0].row();
+ for (auto item : list)
+ {
+ int row = item.row();
+ if (row < first)
+ first = row;
+ if (row > last)
+ last = row;
+ }
+ return true;
+}
+
+void showWebsiteForMod(QWidget *parentDlg, Mod &m)
+{
+ QString url = m.homeurl();
+ if (url.size())
+ {
+ // catch the cases where the protocol is missing
+ if (!url.startsWith("http"))
+ {
+ url = "http://" + url;
+ }
+ QDesktopServices::openUrl(url);
+ }
+ else
+ {
+ CustomMessageBox::selectable(
+ parentDlg, QObject::tr("How sad!"),
+ QObject::tr("The mod author didn't provide a website link for this mod."),
+ QMessageBox::Warning);
+ }
+}
+
+InstanceEditDialog::InstanceEditDialog(OneSixInstance *inst, QWidget *parent)
+ : QDialog(parent), ui(new Ui::InstanceEditDialog), m_inst(inst)
{
MultiMCPlatform::fixWM_CLASS(this);
ui->setupUi(this);
@@ -58,7 +105,7 @@ OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent)
ui->libraryTreeView->setModel(main_model);
ui->libraryTreeView->installEventFilter(this);
connect(ui->libraryTreeView->selectionModel(), &QItemSelectionModel::currentChanged,
- this, &OneSixModEditDialog::versionCurrent);
+ this, &InstanceEditDialog::versionCurrent);
updateVersionControls();
}
else
@@ -76,6 +123,17 @@ OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent)
connect(smodel, SIGNAL(currentChanged(QModelIndex, QModelIndex)),
SLOT(loaderCurrent(QModelIndex, QModelIndex)));
}
+ // Core mods
+ {
+ ensureFolderPathExists(m_inst->coreModsDir());
+ m_coremods = m_inst->coreModList();
+ ui->coreModsTreeView->setModel(m_coremods.get());
+ ui->coreModsTreeView->installEventFilter(this);
+ m_coremods->startWatching();
+ auto smodel = ui->coreModsTreeView->selectionModel();
+ connect(smodel, SIGNAL(currentChanged(QModelIndex, QModelIndex)),
+ SLOT(coreCurrent(QModelIndex, QModelIndex)));
+ }
// resource packs
{
ensureFolderPathExists(m_inst->resourcePacksDir());
@@ -86,23 +144,24 @@ OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent)
}
connect(m_inst, &OneSixInstance::versionReloaded, this,
- &OneSixModEditDialog::updateVersionControls);
+ &InstanceEditDialog::updateVersionControls);
}
-OneSixModEditDialog::~OneSixModEditDialog()
+InstanceEditDialog::~InstanceEditDialog()
{
m_mods->stopWatching();
m_resourcepacks->stopWatching();
+ m_coremods->stopWatching();
delete ui;
}
-void OneSixModEditDialog::updateVersionControls()
+void InstanceEditDialog::updateVersionControls()
{
ui->forgeBtn->setEnabled(true);
ui->liteloaderBtn->setEnabled(true);
}
-void OneSixModEditDialog::disableVersionControls()
+void InstanceEditDialog::disableVersionControls()
{
ui->forgeBtn->setEnabled(false);
ui->liteloaderBtn->setEnabled(false);
@@ -110,7 +169,7 @@ void OneSixModEditDialog::disableVersionControls()
ui->removeLibraryBtn->setEnabled(false);
}
-bool OneSixModEditDialog::reloadInstanceVersion()
+bool InstanceEditDialog::reloadInstanceVersion()
{
try
{
@@ -131,12 +190,19 @@ bool OneSixModEditDialog::reloadInstanceVersion()
}
}
-void OneSixModEditDialog::on_reloadLibrariesBtn_clicked()
+void InstanceEditDialog::on_settingsBtn_clicked()
+{
+ InstanceSettings settings(&m_inst->settings(), this);
+ settings.setWindowTitle(tr("Instance settings"));
+ settings.exec();
+}
+
+void InstanceEditDialog::on_reloadLibrariesBtn_clicked()
{
reloadInstanceVersion();
}
-void OneSixModEditDialog::on_removeLibraryBtn_clicked()
+void InstanceEditDialog::on_removeLibraryBtn_clicked()
{
if (ui->libraryTreeView->currentIndex().isValid())
{
@@ -148,7 +214,7 @@ void OneSixModEditDialog::on_removeLibraryBtn_clicked()
}
}
-void OneSixModEditDialog::on_resetLibraryOrderBtn_clicked()
+void InstanceEditDialog::on_resetLibraryOrderBtn_clicked()
{
try
{
@@ -160,7 +226,7 @@ void OneSixModEditDialog::on_resetLibraryOrderBtn_clicked()
}
}
-void OneSixModEditDialog::on_moveLibraryUpBtn_clicked()
+void InstanceEditDialog::on_moveLibraryUpBtn_clicked()
{
if (ui->libraryTreeView->selectionModel()->selectedRows().isEmpty())
{
@@ -178,7 +244,7 @@ void OneSixModEditDialog::on_moveLibraryUpBtn_clicked()
}
}
-void OneSixModEditDialog::on_moveLibraryDownBtn_clicked()
+void InstanceEditDialog::on_moveLibraryDownBtn_clicked()
{
if (ui->libraryTreeView->selectionModel()->selectedRows().isEmpty())
{
@@ -196,7 +262,106 @@ void OneSixModEditDialog::on_moveLibraryDownBtn_clicked()
}
}
-void OneSixModEditDialog::on_forgeBtn_clicked()
+// FIXME: use this for legacy forge... or abstract away.
+/*
+void LegacyModEditDialog::on_addForgeBtn_clicked()
+{
+ VersionSelectDialog vselect(MMC->forgelist().get(), tr("Select Forge version"), this);
+ vselect.setFilter(1, m_inst->intendedVersionId());
+ if (vselect.exec() && vselect.selectedVersion())
+ {
+ ForgeVersionPtr forge =