diff options
| author | Petr Mrázek <peterix@gmail.com> | 2013-09-22 14:03:05 +0200 |
|---|---|---|
| committer | Petr Mrázek <peterix@gmail.com> | 2013-09-22 14:03:05 +0200 |
| commit | 1bed5e4023f503cb95a914c1e6886e045b7f34e2 (patch) | |
| tree | 6c2a2eb34b93bdd24e7db1f9378b231084c0b27a | |
| parent | 930b07afd4229e952d0cd47ca62cd94235499a0c (diff) | |
| parent | 9d03a9c1e3b9c24a4146adedb2971591d23b037a (diff) | |
| download | PrismLauncher-1bed5e4023f503cb95a914c1e6886e045b7f34e2.tar.gz PrismLauncher-1bed5e4023f503cb95a914c1e6886e045b7f34e2.tar.bz2 PrismLauncher-1bed5e4023f503cb95a914c1e6886e045b7f34e2.zip | |
Merge branch 'feature_onesix_forge' into develop
40 files changed, 1200 insertions, 740 deletions
diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..167a8fa7 --- /dev/null +++ b/.clang-format @@ -0,0 +1,24 @@ +UseTab: true +IndentWidth: 4 +TabWidth: 4 +ConstructorInitializerIndentWidth: 4 +AccessModifierOffset: -4 +IndentCaseLabels: false +IndentFunctionDeclarationAfterType: false +NamespaceIndentation: None + +BreakBeforeBraces: Allman +AllowShortIfStatementsOnASingleLine: false +ColumnLimit: 96 +MaxEmptyLinesToKeep: 1 + +Standard: Cpp11 +Cpp11BracedListStyle: true + +SpacesInParentheses: false +SpaceInEmptyParentheses: false +SpacesInCStyleCastParentheses: false +SpaceAfterControlStatementKeyword: true + +AlignTrailingComments: true +SpacesBeforeTrailingComments: 1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f09e324..aa7a91f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,165 +147,143 @@ ADD_DEFINITIONS(-DLIBGROUPVIEW_STATIC) ################################ FILES ################################ -######## Headers ######## -SET(MULTIMC_HEADERS +######## Sources and headers ######## +SET(MULTIMC_SOURCES +# Application base MultiMC.h +MultiMC.cpp MultiMCVersion.h +# GUI gui/mainwindow.h +gui/mainwindow.cpp gui/settingsdialog.h +gui/settingsdialog.cpp gui/newinstancedialog.h +gui/newinstancedialog.cpp gui/logindialog.h +gui/logindialog.cpp gui/ProgressDialog.h +gui/ProgressDialog.cpp gui/aboutdialog.h +gui/aboutdialog.cpp gui/consolewindow.h +gui/consolewindow.cpp gui/instancedelegate.h +gui/instancedelegate.cpp gui/versionselectdialog.h +gui/versionselectdialog.cpp gui/lwjglselectdialog.h +gui/lwjglselectdialog.cpp gui/instancesettings.h +gui/instancesettings.cpp gui/IconPickerDialog.h +gui/IconPickerDialog.cpp gui/LegacyModEditDialog.h +gui/LegacyModEditDialog.cpp gui/OneSixModEditDialog.h +gui/OneSixModEditDialog.cpp gui/ModEditDialogCommon.h +gui/ModEditDialogCommon.cpp gui/ModListView.h +gui/ModListView.cpp gui/LabeledToolButton.h +gui/LabeledToolButton.cpp gui/EditNotesDialog.h +gui/EditNotesDialog.cpp # Base classes and infrastructure logic/BaseVersion.h logic/MinecraftVersion.h logic/InstanceFactory.h +logic/InstanceFactory.cpp logic/BaseUpdate.h +logic/BaseUpdate.cpp logic/BaseInstance.h +logic/BaseInstance.cpp logic/BaseInstance_p.h + logic/MinecraftProcess.h +logic/MinecraftProcess.cpp logic/Mod.h +logic/Mod.cpp logic/ModList.h +logic/ModList.cpp # Basic instance launcher for starting from terminal logic/InstanceLauncher.h +logic/InstanceLauncher.cpp # network stuffs logic/net/Download.h logic/net/FileDownload.h +logic/net/FileDownload.cpp logic/net/ByteArrayDownload.h +logic/net/ByteArrayDownload.cpp logic/net/CacheDownload.h +logic/net/CacheDownload.cpp logic/net/DownloadJob.h +logic/net/DownloadJob.cpp logic/net/HttpMetaCache.h +logic/net/HttpMetaCache.cpp # legacy instances logic/LegacyInstance.h +logic/LegacyInstance.cpp logic/LegacyInstance_p.h logic/LegacyUpdate.h +logic/LegacyUpdate.cpp logic/LegacyForge.h +logic/LegacyForge.cpp # 1.6 instances logic/OneSixAssets.h +logic/OneSixAssets.cpp logic/OneSixInstance.h +logic/OneSixInstance.cpp logic/OneSixInstance_p.h logic/OneSixUpdate.h -logic/OneSixVersion.h -logic/OneSixLibrary.h -logic/OneSixRule.h -logic/VersionFactory.h -logic/OpSys.h - - -# Nostalgia -logic/NostalgiaInstance.h - -# Lists -logic/lists/InstanceList.h -logic/lists/IconList.h -logic/lists/BaseVersionList.h -logic/lists/MinecraftVersionList.h -logic/lists/LwjglVersionList.h -logic/lists/ForgeVersionList.h - -# misc model/view -logic/EnabledItemFilter.h - -# Tasks -logic/tasks/Task.h -logic/tasks/LoginTask.h -logic/tasks/ProgressProvider.h -) - - -######## Sources ######## -SET(MULTIMC_SOURCES -MultiMC.cpp - -gui/mainwindow.cpp -gui/settingsdialog.cpp -gui/newinstancedialog.cpp -gui/logindialog.cpp -gui/aboutdialog.cpp -gui/consolewindow.cpp -gui/instancedelegate.cpp -gui/versionselectdialog.cpp -gui/lwjglselectdialog.cpp -gui/instancesettings.cpp - -gui/ProgressDialog.cpp -gui/IconPickerDialog.cpp -gui/LegacyModEditDialog.cpp -gui/OneSixModEditDialog.cpp -gui/ModEditDialogCommon.cpp -gui/ModListView.cpp -gui/LabeledToolButton.cpp -gui/EditNotesDialog.cpp - -# Base classes and infrastructure -logic/InstanceFactory.cpp -logic/BaseUpdate.cpp -logic/BaseInstance.cpp -logic/MinecraftProcess.cpp -logic/Mod.cpp -logic/ModList.cpp - -# Basic instance launcher for starting from terminal -logic/InstanceLauncher.cpp - -# network stuffs - to be moved into a depend lib ~_~ -logic/net/FileDownload.cpp -logic/net/ByteArrayDownload.cpp -logic/net/CacheDownload.cpp -logic/net/DownloadJob.cpp -logic/net/HttpMetaCache.cpp - -# legacy instances -logic/LegacyInstance.cpp -logic/LegacyUpdate.cpp -logic/LegacyForge.cpp - -# 1.6 instances -logic/OneSixAssets.cpp -logic/OneSixInstance.cpp logic/OneSixUpdate.cpp +logic/OneSixVersion.h logic/OneSixVersion.cpp +logic/OneSixLibrary.h logic/OneSixLibrary.cpp +logic/OneSixRule.h logic/OneSixRule.cpp -logic/VersionFactory.cpp +logic/OpSys.h logic/OpSys.cpp +logic/ForgeInstaller.h +logic/ForgeInstaller.cpp # Nostalgia +logic/NostalgiaInstance.h logic/NostalgiaInstance.cpp # Lists +logic/lists/InstanceList.h logic/lists/InstanceList.cpp +logic/lists/IconList.h logic/lists/IconList.cpp +logic/lists/BaseVersionList.h logic/lists/BaseVersionList.cpp +logic/lists/MinecraftVersionList.h logic/lists/MinecraftVersionList.cpp +logic/lists/LwjglVersionList.h logic/lists/LwjglVersionList.cpp +logic/lists/ForgeVersionList.h logic/lists/ForgeVersionList.cpp # misc model/view +logic/EnabledItemFilter.h logic/EnabledItemFilter.cpp # Tasks +logic/tasks/ProgressProvider.h +logic/tasks/Task.h logic/tasks/Task.cpp +logic/tasks/LoginTask.h logic/tasks/LoginTask.cpp + ) @@ -328,7 +306,7 @@ gui/OneSixModEditDialog.ui gui/EditNotesDialog.ui ) -set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${MULTIMC_SOURCES} ${MULTIMC_UIS} ${MULTIMC_HEADERS}) +set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${MULTIMC_SOURCES} ${MULTIMC_UIS}) ######## Windows resource files ######## @@ -362,7 +340,7 @@ QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc) # Add executable ADD_EXECUTABLE(MultiMC MACOSX_BUNDLE WIN32 - ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC} ${MULTIMC_RCS}) + ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_QRC} ${MULTIMC_RCS}) # Link QT5_USE_MODULES(MultiMC Widgets Network Xml) diff --git a/MultiMC.cpp b/MultiMC.cpp index 4b5b40b2..decc22bf 100644 --- a/MultiMC.cpp +++ b/MultiMC.cpp @@ -123,7 +123,7 @@ MultiMC::MultiMC ( int& argc, char** argv ) initGlobalSettings(); // and instances - m_instances = new InstanceList(m_settings->get("InstanceDir").toString(),this); + m_instances.reset(new InstanceList(m_settings->get("InstanceDir").toString(),this)); std::cout << "Loading Instances..." << std::endl; m_instances->loadList(); @@ -131,7 +131,7 @@ MultiMC::MultiMC ( int& argc, char** argv ) initHttpMetaCache(); // create the global network manager - m_qnam = new QNetworkAccessManager(this); + m_qnam.reset(new QNetworkAccessManager(this)); // Register meta types. qRegisterMetaType<LoginResponse>("LoginResponse"); @@ -152,80 +152,59 @@ MultiMC::~MultiMC() { if(m_mmc_translator) { - removeTranslator(m_mmc_translator); - delete m_mmc_translator; - m_mmc_translator = nullptr; + removeTranslator(m_mmc_translator.data()); } if(m_qt_translator) { - removeTranslator(m_qt_translator); - delete m_qt_translator; - m_qt_translator = nullptr; + removeTranslator(m_qt_translator.data()); } - if(m_icons) - { - delete m_icons; - m_icons = nullptr; - } - if(m_lwjgllist) - { - delete m_lwjgllist; - m_lwjgllist = nullptr; - } - if(m_minecraftlist) - { - delete m_minecraftlist; - m_minecraftlist = nullptr; - } - delete m_settings; - delete m_metacache; } void MultiMC::initTranslations() { - m_qt_translator = new QTranslator(); + m_qt_translator.reset(new QTranslator()); if(m_qt_translator->load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { std::cout << "Loading Qt Language File for " << QLocale::system().name().toLocal8Bit().constData() << "..."; - if(!installTranslator(m_qt_translator)) + if(!installTranslator(m_qt_translator.data())) { std::cout << " failed."; + m_qt_translator.reset(); } std::cout << std::endl; } else { - delete m_qt_translator; - m_qt_translator = nullptr; + m_qt_translator.reset(); } - m_mmc_translator = new QTranslator(); + m_mmc_translator.reset(new QTranslator()); if(m_mmc_translator->load("mmc_" + QLocale::system().name(), QDir("translations").absolutePath())) { std::cout << "Loading MMC Language File for " << QLocale::system().name().toLocal8Bit().constData() << "..."; - if(!installTranslator(m_mmc_translator)) + if(!installTranslator(m_mmc_translator.data())) { std::cout << " failed."; + m_mmc_translator.reset(); } std::cout << std::endl; } else { - delete m_mmc_translator; - m_mmc_translator = nullptr; + m_mmc_translator.reset(); } } void MultiMC::initGlobalSettings() { - m_settings = new INISettingsObject("multimc.cfg", this); + m_settings.reset(new INISettingsObject("multimc.cfg", this)); // Updates m_settings->registerSetting(new Setting("UseDevBuilds", false)); m_settings->registerSetting(new Setting("AutoUpdate", true)); @@ -278,7 +257,7 @@ void MultiMC::initGlobalSettings() void MultiMC::initHttpMetaCache() { - m_metacache = new HttpMetaCache("metacache"); + m_metacache.reset(new HttpMetaCache("metacache")); m_metacache->addBase("assets", QDir("assets").absolutePath()); m_metacache->addBase("versions", QDir("versions").absolutePath()); m_metacache->addBase("libraries", QDir("libraries").absolutePath()); @@ -287,37 +266,38 @@ void MultiMC::initHttpMetaCache() } -IconList* MultiMC::icons() +QSharedPointer<IconList> MultiMC::icons() { if ( !m_icons ) { - m_icons = new IconList; + m_icons.reset(new IconList); } return m_icons; } -LWJGLVersionList* MultiMC::lwjgllist() +QSharedPointer<LWJGLVersionList> MultiMC::lwjgllist() { if ( !m_lwjgllist ) { - m_lwjgllist = new LWJGLVersionList(); + m_lwjgllist.reset(new LWJGLVersionList()); } return m_lwjgllist; } -ForgeVersionList* MultiMC::forgelist() + +QSharedPointer<ForgeVersionList> MultiMC::forgelist() { if ( !m_forgelist ) { - m_forgelist = new ForgeVersionList(); + m_forgelist.reset(new ForgeVersionList()); } return m_forgelist; } -MinecraftVersionList* MultiMC::minecraftlist() +QSharedPointer<MinecraftVersionList> MultiMC::minecraftlist() { if ( !m_minecraftlist ) { - m_minecraftlist = new MinecraftVersionList(); + m_minecraftlist.reset(new MinecraftVersionList()); } return m_minecraftlist; } @@ -345,4 +325,6 @@ int main(int argc, char *argv[]) } } -#include "MultiMC.moc"
\ No newline at end of file +#include "MultiMC.moc" + + @@ -1,6 +1,7 @@ #pragma once #include <QApplication> +#include <QSharedPointer> #include "MultiMCVersion.h" #include "config.h" @@ -33,17 +34,17 @@ public: MultiMC ( int& argc, char** argv ); virtual ~MultiMC(); - SettingsObject * settings() + QSharedPointer<SettingsObject> settings() { return m_settings; }; - InstanceList * instances() + QSharedPointer<InstanceList> instances() { return m_instances; }; - IconList * icons(); + QSharedPointer<IconList> icons(); Status status() { @@ -55,21 +56,21 @@ public: return m_version; } - QNetworkAccessManager * qnam() + QSharedPointer<QNetworkAccessManager> qnam() { return m_qnam; } - HttpMetaCache * metacache() + QSharedPointer<HttpMetaCache> metacache() { return m_metacache; } - LWJGLVersionList * lwjgllist(); + QSharedPointer<LWJGLVersionList> lwjgllist(); - ForgeVersionList * forgelist(); + QSharedPointer<ForgeVersionList> forgelist(); - MinecraftVersionList * minecraftlist(); + QSharedPointer<MinecraftVersionList> minecraftlist(); private: void initGlobalSettings(); @@ -77,17 +78,17 @@ private: void initTranslations(); private: - QTranslator * m_qt_translator = nullptr; - QTranslator * m_mmc_translator = nullptr; - SettingsObject * m_settings = nullptr; - InstanceList * m_instances = nullptr; - IconList * m_icons = nullptr; - QNetworkAccessManager * m_qnam = nullptr; - HttpMetaCache * m_metacache = nullptr; - Status m_status = MultiMC::Failed; - LWJGLVersionList * m_lwjgllist = nullptr; - ForgeVersionList * m_forgelist = nullptr; - MinecraftVersionList * m_minecraftlist = nullptr; + QSharedPointer<QTranslator> m_qt_translator; + QSharedPointer<QTranslator> m_mmc_translator; + QSharedPointer<SettingsObject> m_settings; + QSharedPointer<InstanceList> m_instances; + QSharedPointer<IconList> m_icons; + QSharedPointer<QNetworkAccessManager> m_qnam; + QSharedPointer<HttpMetaCache> m_metacache; + QSharedPointer<LWJGLVersionList> m_lwjgllist; + QSharedPointer<ForgeVersionList> m_forgelist; + QSharedPointer<MinecraftVersionList> m_minecraftlist; + Status m_status = MultiMC::Failed; MultiMCVersion m_version = {VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD}; };
\ No newline at end of file diff --git a/gui/IconPickerDialog.cpp b/gui/IconPickerDialog.cpp index f3947d21..8f5d8256 100644 --- a/gui/IconPickerDialog.cpp +++ b/gui/IconPickerDialog.cpp @@ -39,7 +39,7 @@ IconPickerDialog::IconPickerDialog(QWidget *parent) : contentsWidget->installEventFilter(this); - contentsWidget->setModel(MMC->icons()); + contentsWidget->setModel(MMC->icons().data()); auto buttonAdd = ui->buttonBox->addButton(tr("Add Icon"),QDialogButtonBox::ResetRole); auto buttonRemove = ui->buttonBox->addButton(tr("Remove Icon"),QDialogButtonBox::ResetRole); @@ -119,7 +119,7 @@ void IconPickerDialog::selectionChanged ( QItemSelection selected, QItemSelectio int IconPickerDialog::exec ( QString selection ) { - IconList * list = MMC->icons(); + auto list = MMC->icons(); auto contentsWidget = ui->iconView; selectedIconKey = selection; diff --git a/gui/LegacyModEditDialog.cpp b/gui/LegacyModEditDialog.cpp index ac7f7f25..20296769 100644 --- a/gui/LegacyModEditDialog.cpp +++ b/gui/LegacyModEditDialog.cpp @@ -199,7 +199,7 @@ void LegacyModEditDialog::on_addCoreBtn_clicked() } void LegacyModEditDialog::on_addForgeBtn_clicked() { - VersionSelectDialog vselect(MMC->forgelist(), this); + VersionSelectDialog vselect(MMC->forgelist().data(), this); vselect.setFilter(1, m_inst->intendedVersionId()); if (vselect.exec() && vselect.selectedVersion()) { @@ -230,7 +230,6 @@ void LegacyModEditDialog::on_addForgeBtn_clicked() m_jarmods->installMod(QFileInfo(entry->getFullPath())); m_jarmods->startWatching(); } - //m_selectedInstance->setIntendedVersionId(->descriptor()); } } void LegacyModEditDialog::on_addJarBtn_clicked() diff --git a/gui/OneSixModEditDialog.cpp b/gui/OneSixModEditDialog.cpp index fad9d2e2..94fea933 100644 --- a/gui/OneSixModEditDialog.cpp +++ b/gui/OneSixModEditDialog.cpp @@ -1,9 +1,9 @@ /* Copyright 2013 MultiMC Contributors - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software @@ -20,36 +20,44 @@ #include "logic/OneSixVersion.h" #include "logic/EnabledItemFilter.h" #include "logic/lists/ForgeVersionList.h" +#include <logic/ForgeInstaller.h> #include "gui/versionselectdialog.h" +#include "ProgressDialog.h" #include <pathutils.h> #include <QFileDialog> +#include <QMessageBox> #include <QDebug> #include <QEvent> #include <QKeyEvent> -OneSixModEditDialog::OneSixModEditDialog(OneSixInstance * inst, QWidget *parent): - m_inst(inst), - QDialog(parent), - ui(new Ui::OneSixModEditDialog) +OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent) + : m_inst(inst), QDialog(parent), ui(new Ui::OneSixModEditDialog) { ui->setupUi(this); - //libraries! + // libraries! + + m_version = m_inst->getFullVersion(); + if (m_version) { - m_version = m_inst->getFullVersion(); - - auto filter = new EnabledItemFilter(this); - filter->setActive(true); - filter->setSourceModel(m_version.data()); - ui->libraryTreeView->setModel(filter); - ui->libraryTreeView->installEventFilter( this ); + main_model = new EnabledItemFilter(this); + main_model->setActive(true); + main_model->setSourceModel(m_version.data()); + ui->libraryTreeView->setModel(main_model); + ui->libraryTreeView->installEventFilter(this); + ui->mainClassEdit->setText(m_version->mainClass); + updateVersionControls(); + } + else + { + disableVersionControls(); } // Loader mods { ensureFolderPathExists(m_inst->loaderModsDir()); m_mods = m_inst->loaderModList(); ui->loaderModTreeView->setModel(m_mods.data()); - ui->loaderModTreeView->installEventFilter( this ); + ui->loaderModTreeView->installEventFilter(this); m_mods->startWatching(); } // resource packs @@ -57,7 +65,7 @@ OneSixModEditDialog::OneSixModEditDialog(OneSixInstance * inst, QWidget *parent) ensureFolderPathExists(m_inst->resourcePacksDir()); m_resourcepacks = m_inst->resourcePackList(); ui->resPackTreeView->setModel(m_resourcepacks.data()); - ui->resPackTreeView->installEventFilter( this ); + ui->resPackTreeView->installEventFilter(this); m_resourcepacks->startWatching(); } } @@ -69,62 +77,164 @@ OneSixModEditDialog::~OneSixModEditDialog() delete ui; } +void OneSixModEditDialog::updateVersionControls() +{ + bool customVersion = m_inst->versionIsCustom(); + ui->customizeBtn->setEnabled(!customVersion); + ui->revertBtn->setEnabled(customVersion); + ui->forgeBtn->setEnabled(true); +} + +void OneSixModEditDialog::disableVersionControls() +{ + ui->customizeBtn->setEnabled(false); + ui->revertBtn->setEnabled(false); + ui->forgeBtn->setEnabled(false); +} + +void OneSixModEditDialog::on_customizeBtn_clicked() +{ + if (m_inst->customizeVersion()) + { + m_version = m_inst->getFullVersion(); + main_model->setSourceModel(m_version.data()); + updateVersionControls(); + } +} + +void OneSixModEditDialog::on_revertBtn_clicked() +{ + auto reply = QMessageBox::question( + this, tr("Revert?"), tr("Do you want to revert the " + "version of this instance to its original configuration?"), + QMessageBox::Yes | QMessageBox::No); + if (reply == QMessageBox::Yes) + { + if (m_inst->revertCustomVersion()) + { + m_version = m_inst->getFullVersion(); + main_model->setSourceModel(m_version.data()); + updateVersionControls(); + } + } +} + void OneSixModEditDialog::on_forgeBtn_clicked() { - VersionSelectDialog vselect(MMC->forgelist(), this); + VersionSelectDialog vselect(MMC->forgelist().data(), this); vselect.setFilter(1, m_inst->currentVersionId()); if (vselect.exec() && vselect.selectedVersion()) { - //m_selectedInstance->setIntendedVersionId(vselect.selectedVersion()->descriptor()); + if (m_inst->versionIsCustom()) + { + auto reply = QMessageBox::question( + this, tr("Revert?"), + tr("This will revert any " + "changes you did to the version up to this point. Is that " + "OK?"), + QMessageBox::Yes | QMessageBox::No); + if (reply == QMessageBox::Yes) + { + m_inst->revertCustomVersion(); + m_inst->customizeVersion(); + { + m_version = m_inst->getFullVersion(); + main_model->setSourceModel(m_version.data()); + updateVersionControls(); + } + } + else + return; + } + else + { + m_inst->customizeVersion(); + m_version = m_inst->getFullVersion(); + main_model->setSourceModel(m_version.data()); + updateVersionControls(); + } + ForgeVersionPtr forgeVersion = vselect.selectedVersion().dynamicCast<ForgeVersion>(); + if (!forgeVersion) + return; + auto entry = MMC->metacache()->resolveEntry("minecraftforge", forgeVersion->filename); + if (entry->stale) + { + DownloadJob *fjob = new DownloadJob("Forge download"); + fjob->add(forgeVersion->installer_url, entry); + ProgressDialog dlg(this); + dlg.exec(fjob); + if (dlg.result() == QDialog::Accepted) + { + // install + QString forgePath = entry->getFullPath(); + ForgeInstaller forge(forgePath, forgeVersion->universal_url); + if (!forge.apply(m_version)) + { + // failure notice + } + } + else + { + // failed to download forge :/ + } + } + else + { + // install + QString forgePath = entry->getFullPath(); + ForgeInstaller forge(forgePath, forgeVersion->universal_url); + if (!forge.apply(m_version)) + { + // failure notice + } + } } } - -bool OneSixModEditDialog::loaderListFilter ( QKeyEvent* keyEvent ) +bool OneSixModEditDialog::loaderListFilter(QKeyEvent *keyEvent) { - switch(keyEvent->key()) + switch (keyEvent->key()) { - case Qt::Key_Delete: - on_rmModBtn_clicked(); - return true; - case Qt::Key_Plus: - on_addModBtn_clicked(); - return true; - default: - break; + case Qt::Key_Delete: + on_rmModBtn_clicked(); + return true; + case Qt::Key_Plus: + on_addModBtn_clicked(); + return true; + default: + break; } - return QDialog::eventFilter( ui->loaderModTreeView, keyEvent ); + return QDialog::eventFilter(ui->loaderModTreeView, keyEvent); } -bool OneSixModEditDialog::resourcePackListFilter ( QKeyEvent* keyEvent ) +bool OneSixModEditDialog::resourcePackListFilter(QKeyEvent *keyEvent) { - switch(keyEvent->key()) + switch (keyEvent->key()) { - case Qt::Key_Delete: - on_rmResPackBtn_clicked(); - return true; - case Qt::Key_Plus: - on_addResPackBtn_clicked(); - return true; - default: - break; + case Qt::Key_Delete: + on_rmResPackBtn_clicked(); + return true; + case Qt::Key_Plus: + on_addResPackBtn_clicked(); + return true; + default: + break; } - return QDialog::eventFilter( ui->resPackTreeView, keyEvent ); + return QDialog |
