Fall back to default theme when the configured theme doesn't exist
This commit is contained in:
parent
10682dbf58
commit
ed42467e87
|
@ -78,6 +78,9 @@
|
|||
// This one is only used to remove it if it was present
|
||||
#define SHADERCACHE_LEGACY_DIR "ShaderCache"
|
||||
|
||||
// The theme directory used by default
|
||||
#define DEFAULT_THEME_DIR "Clean"
|
||||
|
||||
// Filenames
|
||||
// Files in the directory returned by GetUserPath(D_CONFIG_IDX)
|
||||
#define DOLPHIN_CONFIG "Dolphin.ini"
|
||||
|
|
|
@ -866,12 +866,16 @@ void SetUserPath(unsigned int dir_index, const std::string& path)
|
|||
std::string GetThemeDir(const std::string& theme_name)
|
||||
{
|
||||
std::string dir = File::GetUserPath(D_THEMES_IDX) + theme_name + "/";
|
||||
if (File::Exists(dir))
|
||||
return dir;
|
||||
|
||||
// If theme does not exist in user's dir load from shared directory
|
||||
if (!File::Exists(dir))
|
||||
dir = GetSysDirectory() + THEMES_DIR "/" + theme_name + "/";
|
||||
// If the theme doesn't exist in the user dir, load from shared directory
|
||||
dir = GetSysDirectory() + THEMES_DIR "/" + theme_name + "/";
|
||||
if (File::Exists(dir))
|
||||
return dir;
|
||||
|
||||
return dir;
|
||||
// If the theme doesn't exist at all, load the default theme
|
||||
return GetSysDirectory() + THEMES_DIR "/" DEFAULT_THEME_DIR "/";
|
||||
}
|
||||
|
||||
bool WriteStringToFile(const std::string& str, const std::string& filename)
|
||||
|
|
|
@ -403,7 +403,7 @@ void SConfig::LoadInterfaceSettings(IniFile& ini)
|
|||
interface->Get("ShowLogWindow", &m_InterfaceLogWindow, false);
|
||||
interface->Get("ShowLogConfigWindow", &m_InterfaceLogConfigWindow, false);
|
||||
interface->Get("ExtendedFPSInfo", &m_InterfaceExtendedFPSInfo, false);
|
||||
interface->Get("ThemeName40", &theme_name, "Clean");
|
||||
interface->Get("ThemeName40", &theme_name, DEFAULT_THEME_DIR);
|
||||
interface->Get("PauseOnFocusLost", &m_PauseOnFocusLost, false);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue