UI: Ensure theme backward compat. with older OBS vers.

Deprecates "Theme" global config value and uses "CurrentTheme" instead
to ensure backward compatibility with older versions of OBS, which will
fail to load if you have a theme that isn't available.

(Jim Edit: Putting this back because I misunderstood the purpose of
jp9000/obs-studio#936)
master
VodBox 2017-07-02 13:25:20 -07:00 committed by jp9000
parent bb8e019c36
commit f1588daca0
2 changed files with 10 additions and 4 deletions

View File

@ -737,9 +737,14 @@ bool OBSApp::SetTheme(std::string name, std::string path)
bool OBSApp::InitTheme()
{
const char *themeName = config_get_string(globalConfig, "General",
"Theme");
if (!themeName)
themeName = "Default";
"CurrentTheme");
if (!themeName) {
/* Use deprecated "Theme" value if available */
themeName = config_get_string(globalConfig,
"General", "Theme");
if (!themeName)
themeName = "Default";
}
if (strcmp(themeName, "Default") != 0 && SetTheme(themeName))
return true;

View File

@ -2436,8 +2436,9 @@ void OBSBasicSettings::SaveGeneralSettings()
string theme = themeData.toStdString();
if (WidgetChanged(ui->theme)) {
config_set_string(GetGlobalConfig(), "General", "Theme",
config_set_string(GetGlobalConfig(), "General", "CurrentTheme",
theme.c_str());
App()->SetTheme(theme);
}