mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
+23
-10
@@ -2420,19 +2420,32 @@ Common::String ThemeEngine::getThemeId(const Common::String &filename) {
|
||||
return "builtin";
|
||||
|
||||
Common::FSNode node(filename);
|
||||
if (!node.exists())
|
||||
return "builtin";
|
||||
if (node.exists()) {
|
||||
if (node.getName().matchString("*.zip", true)) {
|
||||
Common::String id = node.getName();
|
||||
|
||||
if (node.getName().matchString("*.zip", true)) {
|
||||
Common::String id = node.getName();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
id.deleteLastChar();
|
||||
|
||||
for (int i = 0; i < 4; ++i)
|
||||
id.deleteLastChar();
|
||||
|
||||
return id;
|
||||
} else {
|
||||
return node.getName();
|
||||
return id;
|
||||
} else {
|
||||
return node.getName();
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME:
|
||||
// A very ugly hack to map a id to a filename, this will generate
|
||||
// a complete theme list, thus it is slower than it could be.
|
||||
// But it is the easiest solution for now.
|
||||
Common::List<ThemeDescriptor> list;
|
||||
listUsableThemes(list);
|
||||
|
||||
for (Common::List<ThemeDescriptor>::const_iterator i = list.begin(); i != list.end(); ++i) {
|
||||
if (filename.equalsIgnoreCase(i->filename))
|
||||
return i->id;
|
||||
}
|
||||
|
||||
return "builtin";
|
||||
}
|
||||
|
||||
void ThemeEngine::showCursor() {
|
||||
|
||||
+18
-18
@@ -1838,24 +1838,6 @@ void GlobalOptionsDialog::apply() {
|
||||
g_gui.loadNewTheme(g_gui.theme()->getThemeId(), selected);
|
||||
ConfMan.set("gui_renderer", cfg, _domain);
|
||||
}
|
||||
#ifdef USE_TRANSLATION
|
||||
Common::String oldLang = ConfMan.get("gui_language");
|
||||
int selLang = _guiLanguagePopUp->getSelectedTag();
|
||||
|
||||
ConfMan.set("gui_language", TransMan.getLangById(selLang));
|
||||
|
||||
Common::String newLang = ConfMan.get("gui_language").c_str();
|
||||
if (newLang != oldLang) {
|
||||
// Activate the selected language
|
||||
TransMan.setLanguage(selLang);
|
||||
|
||||
// Rebuild the Launcher and Options dialogs
|
||||
g_gui.loadNewTheme(g_gui.theme()->getThemeId(), ThemeEngine::kGfxDisabled, true);
|
||||
rebuild();
|
||||
if (_launcher != 0)
|
||||
_launcher->rebuild();
|
||||
}
|
||||
#endif // USE_TRANSLATION
|
||||
|
||||
#ifdef USE_UPDATES
|
||||
ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag());
|
||||
@@ -1926,6 +1908,24 @@ void GlobalOptionsDialog::apply() {
|
||||
draw();
|
||||
_newTheme.clear();
|
||||
}
|
||||
#ifdef USE_TRANSLATION
|
||||
Common::String oldLang = ConfMan.get("gui_language");
|
||||
int selLang = _guiLanguagePopUp->getSelectedTag();
|
||||
|
||||
ConfMan.set("gui_language", TransMan.getLangById(selLang));
|
||||
|
||||
Common::String newLang = ConfMan.get("gui_language").c_str();
|
||||
if (newLang != oldLang) {
|
||||
// Activate the selected language
|
||||
TransMan.setLanguage(selLang);
|
||||
|
||||
// Rebuild the Launcher and Options dialogs
|
||||
g_gui.loadNewTheme(g_gui.theme()->getThemeId(), ThemeEngine::kGfxDisabled, true);
|
||||
rebuild();
|
||||
if (_launcher != 0)
|
||||
_launcher->rebuild();
|
||||
}
|
||||
#endif // USE_TRANSLATION
|
||||
|
||||
OptionsDialog::apply();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user