From 5f41886d76c11fe8befe8d059c75dcb5bc11f78d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 5 Jul 2015 02:29:41 +0200 Subject: GH-1053 split settings dialog creation to its own namespace --- application/MainWindow.cpp | 52 +++++++--------------------------------------- 1 file changed, 7 insertions(+), 45 deletions(-) (limited to 'application/MainWindow.cpp') diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index e5961693..4b18dd2e 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -350,15 +350,6 @@ namespace Ui { #include "dialogs/NotificationDialog.h" #include "dialogs/ExportInstanceDialog.h" -#include "pages/global/MultiMCPage.h" -#include "pages/global/ExternalToolsPage.h" -#include "pages/global/AccountListPage.h" -#include "pages/global/ProxyPage.h" -#include "pages/global/JavaPage.h" -#include "pages/global/MinecraftPage.h" - -#include "pagedialog/PageDialog.h" - #include "InstanceList.h" #include "minecraft/MinecraftVersionList.h" #include "minecraft/LwjglVersionList.h" @@ -382,6 +373,7 @@ namespace Ui { #include "JavaCommon.h" #include "InstancePageProvider.h" #include "LaunchController.h" +#include "SettingsUI.h" #include "minecraft/SkinUtils.h" #include "resources/Resource.h" @@ -541,17 +533,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi ui->mainToolBar->addAction(accountMenuButtonAction); - // set up global pages dialog - { - m_globalSettingsProvider = std::make_shared(tr("Settings")); - m_globalSettingsProvider->addPage(); - m_globalSettingsProvider->addPage(); - m_globalSettingsProvider->addPage(); - m_globalSettingsProvider->addPage(); - m_globalSettingsProvider->addPage(); - m_globalSettingsProvider->addPage(); - } - // Update the menu when the active account changes. // Shouldn't have to use lambdas here like this, but if I don't, the compiler throws a fit. // Template hell sucks... @@ -1388,28 +1369,9 @@ void MainWindow::on_actionCheckUpdate_triggered() updater->checkForUpdate(MMC->settings()->get("UpdateChannel").toString(), true); } -template -void ShowPageDialog(T raw_provider, QWidget * parent, QString open_page = QString()) -{ - auto provider = std::dynamic_pointer_cast(raw_provider); - if(!provider) - return; - { - SettingsObject::Lock lock(MMC->settings()); - PageDialog dlg(provider, open_page, parent); - dlg.exec(); - } -} - -void ShowInstancePageDialog(InstancePtr instance, QWidget * parent, QString open_page = QString()) -{ - auto provider = std::make_shared(instance); - ShowPageDialog(provider, parent, open_page); -} - void MainWindow::on_actionSettings_triggered() { - ShowPageDialog(m_globalSettingsProvider, this, "global-settings"); + SettingsUI::ShowPageDialog(MMC->globalSettingsPages(), this, "global-settings"); // FIXME: quick HACK to make this work. improve, optimize. proxymodel->invalidate(); proxymodel->sort(0); @@ -1419,28 +1381,28 @@ void MainWindow::on_actionSettings_triggered() void MainWindow::on_actionInstanceSettings_triggered() { - ShowInstancePageDialog(m_selectedInstance, this, "settings"); + SettingsUI::ShowInstancePageDialog(m_selectedInstance, this, "settings"); } void MainWindow::on_actionEditInstNotes_triggered() { - ShowInstancePageDialog(m_selectedInstance, this, "notes"); + SettingsUI::ShowInstancePageDialog(m_selectedInstance, this, "notes"); } void MainWindow::on_actionEditInstance_triggered() { - ShowInstancePageDialog(m_selectedInstance, this); + SettingsUI::ShowInstancePageDialog(m_selectedInstance, this); } void MainWindow::on_actionScreenshots_triggered() { - ShowInstancePageDialog(m_selectedInstance, this, "screenshots"); + SettingsUI::ShowInstancePageDialog(m_selectedInstance, this, "screenshots"); } void MainWindow::on_actionManageAccounts_triggered() { - ShowPageDialog(m_globalSettingsProvider, this, "accounts"); + SettingsUI::ShowPageDialog(MMC->globalSettingsPages(), this, "accounts"); } void MainWindow::on_actionReportBug_triggered() -- cgit v1.2.3