0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

UI: Ensure OBS launches when theme is missing

This change makes it so OBS will still launch even if a theme is
missing. This change also deprecates the "CurrentTheme" config key, and
is replaced by "CurrentTheme2".

This is because a previous change to make sure OBS fell back to the
System theme in case of a missing theme had been accidentally removed.
Changing the key prevents a new version of OBS setting a theme that
doesn't exist in an older version, which would prevent that version from
launching.
This commit is contained in:
VodBox 2019-12-15 11:24:34 +13:00 committed by jp9000
parent fbf494ad67
commit f782acb66d
2 changed files with 15 additions and 9 deletions

View File

@ -1059,21 +1059,27 @@ bool OBSApp::InitTheme()
defaultPalette = palette();
const char *themeName =
config_get_string(globalConfig, "General", "CurrentTheme");
config_get_string(globalConfig, "General", "CurrentTheme2");
if (!themeName) {
if (!themeName)
/* Use deprecated "CurrentTheme" value if available */
themeName = config_get_string(globalConfig, "General",
"CurrentTheme");
if (!themeName)
/* Use deprecated "Theme" value if available */
themeName = config_get_string(globalConfig, "General", "Theme");
if (!themeName)
themeName = DEFAULT_THEME;
if (!themeName)
themeName = "Dark";
}
if (!themeName)
themeName = DEFAULT_THEME;
if (!themeName)
themeName = "Dark";
if (strcmp(themeName, "Default") == 0)
themeName = "System";
return SetTheme(themeName);
if (strcmp(themeName, "System") != 0 && SetTheme(themeName))
return true;
return SetTheme("System");
}
OBSApp::OBSApp(int &argc, char **argv, profiler_name_store_t *store)

View File

@ -2726,7 +2726,7 @@ void OBSBasicSettings::SaveGeneralSettings()
themeData = DEFAULT_THEME;
if (WidgetChanged(ui->theme)) {
config_set_string(GetGlobalConfig(), "General", "CurrentTheme",
config_set_string(GetGlobalConfig(), "General", "CurrentTheme2",
QT_TO_UTF8(themeData));
App()->SetTheme(themeData.toUtf8().constData());