From f1588daca064c2f48cfb775607a7fc6dc46df844 Mon Sep 17 00:00:00 2001 From: VodBox Date: Sun, 2 Jul 2017 13:25:20 -0700 Subject: [PATCH] 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) --- UI/obs-app.cpp | 11 ++++++++--- UI/window-basic-settings.cpp | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 6c345a7df..a314febe1 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -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; diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 0cbeb771a..c3ac15003 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -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); }