diff options
Diffstat (limited to 'application/pages/global/MultiMCPage.cpp')
-rw-r--r-- | application/pages/global/MultiMCPage.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/application/pages/global/MultiMCPage.cpp b/application/pages/global/MultiMCPage.cpp index c1a24a56..9694fab5 100644 --- a/application/pages/global/MultiMCPage.cpp +++ b/application/pages/global/MultiMCPage.cpp @@ -28,6 +28,7 @@ #include <FileSystem.h> #include "MultiMC.h" #include "BuildConfig.h" +#include "themes/ITheme.h" // FIXME: possibly move elsewhere enum InstSortMode @@ -305,6 +306,14 @@ void MultiMCPage::applySettings() MMC->setIconTheme(s->get("IconTheme").toString()); } + auto originalAppTheme = s->get("ApplicationTheme").toString(); + auto newAppTheme = ui->themeComboBoxColors->currentData().toString(); + if(originalAppTheme != newAppTheme) + { + s->set("ApplicationTheme", newAppTheme); + MMC->setApplicationTheme(newAppTheme); + } + // Console settings s->set("ShowConsole", ui->showConsoleCheck->isChecked()); s->set("AutoCloseConsole", ui->autoCloseConsoleCheck->isChecked()); @@ -386,6 +395,21 @@ void MultiMCPage::loadSettings() ui->themeComboBox->setCurrentIndex(0); } + { + auto currentTheme = s->get("ApplicationTheme").toString(); + auto themes = MMC->getValidApplicationThemes(); + int idx = 0; + for(auto &theme: themes) + { + ui->themeComboBoxColors->addItem(theme->name(), theme->id()); + if(currentTheme == theme->id()) + { + ui->themeComboBoxColors->setCurrentIndex(idx); + } + idx++; + } + } + // Console settings ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool()); ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool()); |