aboutsummaryrefslogtreecommitdiff
path: root/launcher/Application.cpp
diff options
context:
space:
mode:
authorTheKodeToad <TheKodeToad@proton.me>2023-07-19 20:57:08 +0100
committerTheKodeToad <TheKodeToad@proton.me>2023-07-19 20:57:08 +0100
commit960093700a9daa4e2115d4663ab486a5dd1a4757 (patch)
tree0d943e8a26655da5fe81a9ef2671db4b23fb38c7 /launcher/Application.cpp
parent54d393632d5c964f0c30ca9bc816853b92552c9c (diff)
downloadPrismLauncher-960093700a9daa4e2115d4663ab486a5dd1a4757.tar.gz
PrismLauncher-960093700a9daa4e2115d4663ab486a5dd1a4757.tar.bz2
PrismLauncher-960093700a9daa4e2115d4663ab486a5dd1a4757.zip
Better theme reset
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
Diffstat (limited to 'launcher/Application.cpp')
-rw-r--r--launcher/Application.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index df8a2363..ea706d6f 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -526,7 +526,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_settings.reset(new INISettingsObject({ BuildConfig.LAUNCHER_CONFIGFILE, "polymc.cfg", "multimc.cfg" }, this));
// Theming
- m_settings->registerSetting("IconTheme", QString("pe_colored"));
+ m_settings->registerSetting("IconTheme", QString());
m_settings->registerSetting("ApplicationTheme", QString());
m_settings->registerSetting("BackgroundCat", QString("kitteh"));
@@ -801,7 +801,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
}
// Themes
- m_themeManager = std::make_unique<ThemeManager>(m_mainWindow);
+ m_themeManager = std::make_unique<ThemeManager>();
// initialize and load all instances
{
@@ -893,8 +893,6 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
}
});
- applyCurrentlySelectedTheme(true);
-
updateCapabilities();
if(createSetupWizard())
@@ -902,6 +900,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
return;
}
+ applyCurrentlySelectedTheme(true);
performMainStartupAction();
}
@@ -930,11 +929,21 @@ bool Application::createSetupWizard()
}();
bool languageRequired = settings()->get("Language").toString().isEmpty();
bool pasteInterventionRequired = settings()->get("PastebinURL") != "";
- bool themeInterventionRequired = settings()->get("ApplicationTheme") == "";
+ bool validWidgets = m_themeManager->isValidApplicationTheme(settings()->get("ApplicationTheme").toString());
+ bool validIcons = m_themeManager->isValidIconTheme(settings()->get("IconTheme").toString());
+ bool themeInterventionRequired = !validWidgets || !validIcons;
bool wizardRequired = javaRequired || languageRequired || pasteInterventionRequired || themeInterventionRequired;
if(wizardRequired)
{
+ // set default theme after going into theme wizard
+ if (!validIcons)
+ settings()->set("IconTheme", QString("pe_colored"));
+ if (!validWidgets)
+ settings()->set("ApplicationTheme", QString("system"));
+
+ applyCurrentlySelectedTheme(true);
+
m_setupWizard = new SetupWizard(nullptr);
if (languageRequired)
{
@@ -953,9 +962,9 @@ bool Application::createSetupWizard()
if (themeInterventionRequired)
{
- settings()->set("ApplicationTheme", QString("system")); // set default theme after going into theme wizard
m_setupWizard->addPage(new ThemeWizardPage(m_setupWizard));
}
+
connect(m_setupWizard, &QDialog::finished, this, &Application::setupWizardFinished);
m_setupWizard->show();
return true;