diff options
| author | Petr Mrázek <peterix@gmail.com> | 2014-04-23 02:27:40 +0200 |
|---|---|---|
| committer | Petr Mrázek <peterix@gmail.com> | 2014-06-09 01:38:29 +0200 |
| commit | aade36860c373268857ca821c14a13f38c880b1a (patch) | |
| tree | 464b804216c7eadc00941daa33a1713c8071a088 | |
| parent | 3a0cdf2d3dde6192694ca34429ab277608357c2a (diff) | |
| download | PrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.tar.gz PrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.tar.bz2 PrismLauncher-aade36860c373268857ca821c14a13f38c880b1a.zip | |
Begin the transformation!
Nuke all the things.
| -rw-r--r-- | CMakeLists.txt | 53 | ||||
| -rw-r--r-- | MultiMC.cpp | 5 | ||||
| -rw-r--r-- | gui/MainWindow.cpp | 97 | ||||
| -rw-r--r-- | gui/MainWindow.h | 10 | ||||
| -rw-r--r-- | gui/MainWindow.ui | 83 | ||||
| -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.cpp | 393 | ||||
| -rw-r--r-- | gui/dialogs/LegacyModEditDialog.h | 78 | ||||
| -rw-r--r-- | gui/dialogs/LegacyModEditDialog.ui | 321 | ||||
| -rw-r--r-- | gui/dialogs/ModEditDialogCommon.cpp | 57 | ||||
| -rw-r--r-- | gui/dialogs/ModEditDialogCommon.h | 22 | ||||
| -rw-r--r-- | logic/BaseInstaller.h | 2 | ||||
| -rw-r--r-- | logic/BaseVersion.h | 4 | ||||
| -rw-r--r-- | logic/InstanceFactory.cpp | 52 | ||||
| -rw-r--r-- | logic/LegacyInstance.cpp | 11 | ||||
| -rw-r--r-- | logic/LegacyUpdate.cpp | 65 | ||||
| -rw-r--r-- | logic/LegacyUpdate.h | 9 | ||||
| -rw-r--r-- | logic/MinecraftVersion.h | 45 | ||||
| -rw-r--r-- | logic/NostalgiaInstance.cpp | 36 | ||||
| -rw-r--r-- | logic/NostalgiaInstance.h | 29 | ||||
| -rw-r--r-- | logic/OneSixFTBInstance.cpp | 4 | ||||
| -rw-r--r-- | logic/OneSixInstance.cpp | 64 | ||||
| -rw-r--r-- | logic/OneSixInstance.h | 11 | ||||
| -rw-r--r-- | logic/OneSixInstance_p.h | 3 | ||||
| -rw-r--r-- | logic/OneSixLibrary.h | 2 | ||||
| -rw-r--r-- | logic/OneSixUpdate.cpp | 2 | ||||
| -rw-r--r-- | logic/OneSixVersionBuilder.cpp | 10 | ||||
| -rw-r--r-- | logic/OneSixVersionBuilder.h | 5 | ||||
| -rw-r--r-- | logic/VersionFile.cpp | 84 | ||||
| -rw-r--r-- | logic/VersionFile.h | 19 | ||||
| -rw-r--r-- | logic/VersionFinal.cpp | 75 | ||||
| -rw-r--r-- | logic/VersionFinal.h | 32 | ||||
| -rw-r--r-- | logic/forge/ForgeData.cpp | 62 | ||||
| -rw-r--r-- | logic/forge/ForgeData.h | 21 | ||||
| -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.cpp | 55 | ||||
| -rw-r--r-- | logic/forge/ForgeVersion.h | 31 | ||||
| -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.cpp | 16 | ||||
| -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.h | 2 |
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 ¤t, const QModelIndex &previous) { if(!current.isValid()) @@ -1446,12 +1359,8 @@ void MainWindow::instanceChanged(const QModelIndex ¤t, 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 = |
