aboutsummaryrefslogtreecommitdiff
path: root/gui/options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/options.cpp')
-rw-r--r--gui/options.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/gui/options.cpp b/gui/options.cpp
index 5a95101f3d..9b608e4adc 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -736,9 +736,8 @@ GlobalOptionsDialog::GlobalOptionsDialog()
_rendererPopUp = new PopUpWidget(tab, "GlobalOptions_Misc.Renderer", "GUI Renderer:", labelWidth);
- for (int i = 1; i < GUI::ThemeEngine::kGfxMAX; ++i) {
- _rendererPopUp->appendEntry(GUI::ThemeEngine::rendererModeLabels[i], i);
- }
+ for (uint i = 1; i < GUI::ThemeEngine::_rendererModesSize; ++i)
+ _rendererPopUp->appendEntry(GUI::ThemeEngine::_rendererModes[i].name, GUI::ThemeEngine::_rendererModes[i].mode);
_autosavePeriodPopUp = new PopUpWidget(tab, "GlobalOptions_Misc.AutosavePeriod", "Autosave:", labelWidth);
@@ -813,7 +812,10 @@ void GlobalOptionsDialog::open() {
_autosavePeriodPopUp->setSelected(i);
}
- _rendererPopUp->setSelected(ConfMan.getInt("gui_renderer") - 1);
+ ThemeEngine::GraphicsMode mode = ThemeEngine::findMode(ConfMan.get("gui_renderer"));
+ if (mode == ThemeEngine::kGfxDisabled)
+ mode = ThemeEngine::_defaultRendererMode;
+ _rendererPopUp->setSelectedTag(mode);
}
void GlobalOptionsDialog::close() {
@@ -844,9 +846,11 @@ void GlobalOptionsDialog::close() {
ConfMan.setInt("autosave_period", _autosavePeriodPopUp->getSelectedTag(), _domain);
- if ((int)_rendererPopUp->getSelectedTag() != ConfMan.getInt("gui_renderer")) {
- g_gui.loadNewTheme(g_gui.theme()->getThemeFileName(), (GUI::ThemeEngine::GraphicsMode)_rendererPopUp->getSelectedTag());
- ConfMan.setInt("gui_renderer", _rendererPopUp->getSelectedTag(), _domain);
+ GUI::ThemeEngine::GraphicsMode selected = (GUI::ThemeEngine::GraphicsMode)_rendererPopUp->getSelectedTag();
+ const char *cfg = GUI::ThemeEngine::findModeConfigName(selected);
+ if (!ConfMan.get("gui_renderer").equalsIgnoreCase(cfg)) {
+ g_gui.loadNewTheme(g_gui.theme()->getThemeFileName(), selected);
+ ConfMan.set("gui_renderer", cfg, _domain);
}
}
OptionsDialog::close();