MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / saveConfig

Method saveConfig

source/modes/SettingsWindow.cpp:368–490  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

366}
367
368void SettingsWindow::saveConfig()
369{
370 Ogre::Root* ogreRoot = Ogre::Root::getSingletonPtr();
371 ConfigManager& config = ConfigManager::getSingleton();
372
373 // Save config
374 // Game
375 CEGUI::Editbox* usernameEb = static_cast<CEGUI::Editbox*>(
376 mRootWindow->getChild("SettingsWindow/MainTabControl/Game/GameSP/NicknameEdit"));
377 config.setGameValue(Config::NICKNAME, usernameEb->getText().c_str());
378
379 CEGUI::Combobox* keeperVoiceCb = static_cast<CEGUI::Combobox*>(
380 mRootWindow->getChild("SettingsWindow/MainTabControl/Game/GameSP/KeeperVoice"));
381 CEGUI::ListboxItem* keeperVoiceItem = keeperVoiceCb->getSelectedItem();
382 if(keeperVoiceItem != nullptr)
383 config.setGameValue(Config::KEEPERVOICE, keeperVoiceItem->getText().c_str());
384 else
385 config.setGameValue(Config::KEEPERVOICE, "");
386
387 CEGUI::Combobox* minimapTypes = static_cast<CEGUI::Combobox*>(
388 mRootWindow->getChild("SettingsWindow/MainTabControl/Game/GameSP/MiniMapType"));
389 CEGUI::ListboxItem* minimapTypesItem = minimapTypes->getSelectedItem();
390 if(minimapTypesItem != nullptr)
391 config.setGameValue(Config::MINIMAP_TYPE, minimapTypesItem->getText().c_str());
392 else
393 config.setGameValue(Config::MINIMAP_TYPE, "");
394
395 CEGUI::Slider* lightSlider = static_cast<CEGUI::Slider*>(
396 mRootWindow->getChild("SettingsWindow/MainTabControl/Game/GameSP/LightSlider"));
397 config.setGameValue(Config::LIGHT_FACTOR, Helper::toString(lightSlider->getCurrentValue()));
398
399 // Input
400 CEGUI::ToggleButton* keyboardGrabCheckbox = static_cast<CEGUI::ToggleButton*>(
401 mRootWindow->getChild("SettingsWindow/MainTabControl/Input/InputSP/KeyboardGrabCheckbox"));
402 config.setInputValue(Config::KEYBOARD_GRAB, keyboardGrabCheckbox->isSelected() ? "Yes" : "No");
403
404 CEGUI::ToggleButton* mouseGrabCheckbox = static_cast<CEGUI::ToggleButton*>(
405 mRootWindow->getChild("SettingsWindow/MainTabControl/Input/InputSP/MouseGrabCheckbox"));
406 config.setInputValue(Config::MOUSE_GRAB, mouseGrabCheckbox->isSelected() ? "Yes" : "No");
407
408 // Audio
409 CEGUI::Slider* volumeSlider = static_cast<CEGUI::Slider*>(
410 mRootWindow->getChild("SettingsWindow/MainTabControl/Audio/AudioSP/MusicSlider"));
411 config.setAudioValue(Config::MUSIC_VOLUME, Helper::toString(volumeSlider->getCurrentValue()));
412
413 // Video
414 Ogre::RenderSystem* renderer = ogreRoot->getRenderSystem();
415
416 // Changing Ogre renderer needs a restart to allow to load shaders and requested stuff
417 CEGUI::Combobox* rdrCb = static_cast<CEGUI::Combobox*>(
418 mRootWindow->getChild("SettingsWindow/MainTabControl/Video/VideoSP/RendererCombobox"));
419 std::string rendererName = rdrCb->getSelectedItem()->getText().c_str();
420 if (rendererName != renderer->getName())
421 {
422 renderer = ogreRoot->getRenderSystemByName(rendererName);
423 if (renderer == nullptr)
424 {
425 const Ogre::RenderSystemList& renderers = ogreRoot->getAvailableRenderers();

Callers

nothing calls this directly

Calls 8

splitFunction · 0.85
toIntFunction · 0.85
setGameValueMethod · 0.80
setInputValueMethod · 0.80
setAudioValueMethod · 0.80
setVideoValueMethod · 0.80
saveUserConfigMethod · 0.80
toStringFunction · 0.50

Tested by

no test coverage detected