diff --git a/es-app/src/guis/GuiCollectionSystemsOptions.cpp b/es-app/src/guis/GuiCollectionSystemsOptions.cpp index 8f9b09ba0..95eac3063 100644 --- a/es-app/src/guis/GuiCollectionSystemsOptions.cpp +++ b/es-app/src/guis/GuiCollectionSystemsOptions.cpp @@ -77,7 +77,7 @@ void GuiCollectionSystemsOptions::initializeMenu() toggleSystemNameInCollections = std::make_shared<SwitchComponent>(mWindow); toggleSystemNameInCollections->setState(Settings::getInstance()->getBool("CollectionShowSystemInfo")); - mMenu.addWithLabel("SHOW SYSTEM NAME IN COLLECTIONS", toggleSystemNameInCollections); + mMenu.addWithLabel("SHOW SYSTEM NAMES IN COLLECTIONS", toggleSystemNameInCollections); if(CollectionSystemManager::get()->isEditing()) { diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 50cbf2a5d..565d7a2b0 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -2,6 +2,7 @@ // GuiMenu.cpp // // Main menu. +// Some submenus are covered in separate source files. // #include "guis/GuiMenu.h" @@ -36,17 +37,17 @@ GuiMenu::GuiMenu( bool isFullUI = UIModeController::getInstance()->isUIModeFull(); if (isFullUI) - addEntry("SCRAPER", 0x777777FF, true, [this] { openScraperSettings(); }); + addEntry("UI SETTINGS", 0x777777FF, true, [this] { openUISettings(); }); addEntry("SOUND SETTINGS", 0x777777FF, true, [this] { openSoundSettings(); }); - if (isFullUI) - addEntry("UI SETTINGS", 0x777777FF, true, [this] { openUISettings(); }); - if (isFullUI) addEntry("GAME COLLECTION SETTINGS", 0x777777FF, true, [this] { openCollectionSystemSettings(); }); + if (isFullUI) + addEntry("SCRAPER", 0x777777FF, true, [this] { openScraperSettings(); }); + if (isFullUI) addEntry("OTHER SETTINGS", 0x777777FF, true, [this] { openOtherSettings(); }); @@ -71,7 +72,7 @@ void GuiMenu::openScraperSettings() >(mWindow, "SCRAPE FROM", false); std::vector<std::string> scrapers = getScraperList(); - // Select either the first entry of the one read from the settings, + // Select either the first entry or the one read from the settings, // just in case the scraper from settings has vanished. for (auto it = scrapers.cbegin(); it != scrapers.cend(); it++) scraper_list->add(*it, *it, *it == Settings::getInstance()->getString("Scraper")); @@ -173,7 +174,14 @@ void GuiMenu::openSoundSettings() }); #endif - // Disable sounds. + // Video audio. + auto video_audio = std::make_shared<SwitchComponent>(mWindow); + video_audio->setState(Settings::getInstance()->getBool("VideoAudio")); + s->addWithLabel("ENABLE AUDIO FOR VIDEO FILES", video_audio); + s->addSaveFunc([video_audio] { Settings::getInstance()->setBool("VideoAudio", + video_audio->getState()); }); + + // Navigation sounds. auto sounds_enabled = std::make_shared<SwitchComponent>(mWindow); sounds_enabled->setState(Settings::getInstance()->getBool("EnableSounds")); s->addWithLabel("ENABLE NAVIGATION SOUNDS", sounds_enabled); @@ -188,12 +196,6 @@ void GuiMenu::openSoundSettings() Settings::getInstance()->setBool("EnableSounds", sounds_enabled->getState()); }); - auto video_audio = std::make_shared<SwitchComponent>(mWindow); - video_audio->setState(Settings::getInstance()->getBool("VideoAudio")); - s->addWithLabel("ENABLE VIDEO AUDIO", video_audio); - s->addSaveFunc([video_audio] { Settings::getInstance()->setBool("VideoAudio", - video_audio->getState()); }); - #ifdef _RPI_ // OMX player Audio Device auto omx_audio_dev = std::make_shared< OptionListComponent<std::string> @@ -228,78 +230,43 @@ void GuiMenu::openUISettings() { auto s = new GuiSettings(mWindow, "UI SETTINGS"); - // UI mode. - auto UImodeSelection = std::make_shared< OptionListComponent<std::string> - >(mWindow, "UI MODE", false); - std::vector<std::string> UImodes = UIModeController::getInstance()->getUIModes(); - for (auto it = UImodes.cbegin(); it != UImodes.cend(); it++) - UImodeSelection->add(*it, *it, Settings::getInstance()->getString("UIMode") == *it); - s->addWithLabel("UI MODE", UImodeSelection); - Window* window = mWindow; - s->addSaveFunc([ UImodeSelection, window] { - std::string selectedMode = UImodeSelection->getSelected(); - if (selectedMode != "Full") { - std::string msg = "You are changing the UI to a restricted mode:\n" + - selectedMode + "\n"; - msg += "This will hide most menu-options to prevent changes to the system.\n"; - msg += "To unlock and return to the full UI, enter this code: \n"; - msg += "\"" + UIModeController::getInstance()->getFormattedPassKeyStr() + "\"\n\n"; - msg += "Do you want to proceed?"; - window->pushGui(new GuiMsgBox(window, msg, - "YES", [selectedMode] { - LOG(LogDebug) << "Setting UI mode to " << selectedMode; - Settings::getInstance()->setString("UIMode", selectedMode); - Settings::getInstance()->saveFile(); - }, "NO",nullptr)); - } + // Optionally start in selected system/gamelist. + auto systemfocus_list = std::make_shared< OptionListComponent<std::string> + >(mWindow, "GAMELIST ON STARTUP", false); + systemfocus_list->add("NONE", "", Settings::getInstance()->getString("StartupSystem") == ""); + for (auto it = SystemData::sSystemVector.cbegin(); + it != SystemData::sSystemVector.cend(); it++) { + if ("retropie" != (*it)->getName()) + systemfocus_list->add((*it)->getName(), (*it)->getName(), + Settings::getInstance()->getString("StartupSystem") == (*it)->getName()); + } + s->addWithLabel("GAMELIST TO SHOW ON STARTUP", systemfocus_list); + s->addSaveFunc([systemfocus_list] { + Settings::getInstance()->setString("StartupSystem", systemfocus_list->getSelected()); }); - // Fullscreen mode. - auto fullscreen_mode = std::make_shared< OptionListComponent<std::string> - >(mWindow, "FULLSCREEN MODE", false); - std::vector<std::string> screenmode; - screenmode.push_back("normal"); - screenmode.push_back("borderless"); - for (auto it = screenmode.cbegin(); it != screenmode.cend(); it++) - fullscreen_mode->add(*it, *it, Settings::getInstance()->getString("FullscreenMode") == *it); - s->addWithLabel("FULLSCREEN MODE (REQUIRES RESTART)", fullscreen_mode); - s->addSaveFunc([fullscreen_mode] { - if (Settings::getInstance()->getString("FullscreenMode") == "normal" - && fullscreen_mode->getSelected() != "normal") { - Settings::getInstance()->setString("PowerSaverMode", "default"); - PowerSaver::init(); - } - Settings::getInstance()->setString("FullscreenMode", fullscreen_mode->getSelected()); - }); + // GameList view style. + auto gamelist_style = std::make_shared< OptionListComponent<std::string> + >(mWindow, "GAMELIST VIEW STYLE", false); + std::vector<std::string> styles; + styles.push_back("automatic"); + styles.push_back("basic"); + styles.push_back("detailed"); + styles.push_back("video"); + styles.push_back("grid"); - // Screensaver. - ComponentListRow screensaver_row; - screensaver_row.elements.clear(); - screensaver_row.addElement(std::make_shared<TextComponent> - (mWindow, "SCREENSAVER SETTINGS", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); - screensaver_row.addElement(makeArrow(mWindow), false); - screensaver_row.makeAcceptInputHandler(std::bind(&GuiMenu::openScreensaverOptions, this)); - s->addRow(screensaver_row); - - // Quick system select (left/right in game list view). - auto quick_sys_select = std::make_shared<SwitchComponent>(mWindow); - quick_sys_select->setState(Settings::getInstance()->getBool("QuickSystemSelect")); - s->addWithLabel("QUICK SYSTEM SELECT", quick_sys_select); - s->addSaveFunc([quick_sys_select] { Settings::getInstance()->setBool("QuickSystemSelect", - quick_sys_select->getState()); }); - - // Carousel transition option. - auto move_carousel = std::make_shared<SwitchComponent>(mWindow); - move_carousel->setState(Settings::getInstance()->getBool("MoveCarousel")); - s->addWithLabel("CAROUSEL TRANSITIONS", move_carousel); - s->addSaveFunc([move_carousel] { - if (move_carousel->getState() - && !Settings::getInstance()->getBool("MoveCarousel") - && PowerSaver::getMode() == PowerSaver::INSTANT) { - Settings::getInstance()->setString("PowerSaverMode", "default"); - PowerSaver::init(); - } - Settings::getInstance()->setBool("MoveCarousel", move_carousel->getState()); + for (auto it = styles.cbegin(); it != styles.cend(); it++) + gamelist_style->add(*it, *it, Settings::getInstance()-> + getString("GamelistViewStyle") == *it); + s->addWithLabel("GAMELIST VIEW STYLE", gamelist_style); + s->addSaveFunc([gamelist_style] { + bool needReload = false; + if (Settings::getInstance()->getString("GamelistViewStyle") != + gamelist_style->getSelected()) + needReload = true; + Settings::getInstance()->setString("GamelistViewStyle", gamelist_style->getSelected()); + if (needReload) + ViewController::get()->reloadAll(); }); // Transition style. @@ -359,51 +326,60 @@ void GuiMenu::openUISettings() }); } - // GameList view style. - auto gamelist_style = std::make_shared< OptionListComponent<std::string> - >(mWindow, "GAMELIST VIEW STYLE", false); - std::vector<std::string> styles; - styles.push_back("automatic"); - styles.push_back("basic"); - styles.push_back("detailed"); - styles.push_back("video"); - styles.push_back("grid"); - - for (auto it = styles.cbegin(); it != styles.cend(); it++) - gamelist_style->add(*it, *it, Settings::getInstance()-> - getString("GamelistViewStyle") == *it); - s->addWithLabel("GAMELIST VIEW STYLE", gamelist_style); - s->addSaveFunc([gamelist_style] { - bool needReload = false; - if (Settings::getInstance()->getString("GamelistViewStyle") != - gamelist_style->getSelected()) - needReload = true; - Settings::getInstance()->setString("GamelistViewStyle", gamelist_style->getSelected()); - if (needReload) - ViewController::get()->reloadAll(); + // UI mode. + auto UImodeSelection = std::make_shared< OptionListComponent<std::string> + >(mWindow, "UI MODE", false); + std::vector<std::string> UImodes = UIModeController::getInstance()->getUIModes(); + for (auto it = UImodes.cbegin(); it != UImodes.cend(); it++) + UImodeSelection->add(*it, *it, Settings::getInstance()->getString("UIMode") == *it); + s->addWithLabel("UI MODE", UImodeSelection); + Window* window = mWindow; + s->addSaveFunc([ UImodeSelection, window] { + std::string selectedMode = UImodeSelection->getSelected(); + if (selectedMode != "Full") { + std::string msg = "You are changing the UI to a restricted mode:\n" + + selectedMode + "\n"; + msg += "This will hide most menu-options to prevent changes to the system.\n"; + msg += "To unlock and return to the full UI, enter this code: \n"; + msg += "\"" + UIModeController::getInstance()->getFormattedPassKeyStr() + "\"\n\n"; + msg += "Do you want to proceed?"; + window->pushGui(new GuiMsgBox(window, msg, + "YES", [selectedMode] { + LOG(LogDebug) << "Setting UI mode to " << selectedMode; + Settings::getInstance()->setString("UIMode", selectedMode); + Settings::getInstance()->saveFile(); + }, "NO",nullptr)); + } }); - // Optionally start in selected system. - auto systemfocus_list = std::make_shared< OptionListComponent<std::string> - >(mWindow, "START ON SYSTEM", false); - systemfocus_list->add("NONE", "", Settings::getInstance()->getString("StartupSystem") == ""); - for (auto it = SystemData::sSystemVector.cbegin(); - it != SystemData::sSystemVector.cend(); it++) { - if ("retropie" != (*it)->getName()) - systemfocus_list->add((*it)->getName(), (*it)->getName(), - Settings::getInstance()->getString("StartupSystem") == (*it)->getName()); - } - s->addWithLabel("START ON SYSTEM", systemfocus_list); - s->addSaveFunc([systemfocus_list] { - Settings::getInstance()->setString("StartupSystem", systemfocus_list->getSelected()); - }); + // Sort favorites on top of the gamelists. + auto favoritesFirstSwitch = std::make_shared<SwitchComponent>(mWindow); + favoritesFirstSwitch->setState(Settings::getInstance()->getBool("FavoritesFirst")); + s->addWithLabel("SORT FAVORITES ON TOP OF GAMELISTS", favoritesFirstSwitch); + s->addSaveFunc([favoritesFirstSwitch] { + if (Settings::getInstance()->setBool("FavoritesFirst", favoritesFirstSwitch->getState())) + for (auto it = SystemData::sSystemVector.cbegin(); it != + SystemData::sSystemVector.cend(); it++) { + // The favorites and recent gamelists never sort favorites on top. + if ((*it)->getName() == "favorites" || (*it)->getName() == "recent" || + (*it)->getName() == "collections") + continue; + // Don't re-sort custom collections as they have their own option + // for whether to sort favorites on top or not (FavFirstCustom). + if (CollectionSystemManager::get()->getIsCustomCollection((*it))) + continue; - // Show help. - auto show_help = std::make_shared<SwitchComponent>(mWindow); - show_help->setState(Settings::getInstance()->getBool("ShowHelpPrompts")); - s->addWithLabel("ON-SCREEN HELP", show_help); - s->addSaveFunc([show_help] { Settings::getInstance()->setBool("ShowHelpPrompts", - show_help->getState()); }); + FileData* rootFolder = (*it)->getRootFolder(); + rootFolder->sort(getSortTypeFromString(rootFolder->getSortTypeString()), + Settings::getInstance()->getBool("FavoritesFirst")); + ViewController::get()->reloadGameListView(*it); + + // Jump to the first row of the gamelist. + IGameListView* gameList = ViewController::get()->getGameListView((*it)).get(); + FileData* firstRow = gameList->getCursor()->getParent()->getChildrenListToDisplay()[0]; + gameList->setCursor(firstRow); + } + }); // Enable filters (ForceDisableFilters). auto enable_filter = std::make_shared<SwitchComponent>(mWindow); @@ -416,6 +392,27 @@ void GuiMenu::openUISettings() ViewController::get()->ReloadAndGoToStart(); }); + // Quick system select (left/right in game list view). + auto quick_sys_select = std::make_shared<SwitchComponent>(mWindow); + quick_sys_select->setState(Settings::getInstance()->getBool("QuickSystemSelect")); + s->addWithLabel("QUICK SYSTEM SELECT", quick_sys_select); + s->addSaveFunc([quick_sys_select] { Settings::getInstance()->setBool("QuickSystemSelect", + quick_sys_select->getState()); }); + + // Carousel transition option. + auto move_carousel = std::make_shared<SwitchComponent>(mWindow); + move_carousel->setState(Settings::getInstance()->getBool("MoveCarousel")); + s->addWithLabel("CAROUSEL TRANSITIONS", move_carousel); + s->addSaveFunc([move_carousel] { + if (move_carousel->getState() + && !Settings::getInstance()->getBool("MoveCarousel") + && PowerSaver::getMode() == PowerSaver::INSTANT) { + Settings::getInstance()->setString("PowerSaverMode", "default"); + PowerSaver::init(); + } + Settings::getInstance()->setBool("MoveCarousel", move_carousel->getState()); + }); + // Hide start menu in Kid Mode. auto disable_start = std::make_shared<SwitchComponent>(mWindow); disable_start->setState(Settings::getInstance()->getBool("DisableKidStartMenu")); @@ -423,51 +420,21 @@ void GuiMenu::openUISettings() s->addSaveFunc([disable_start] { Settings::getInstance()->setBool("DisableKidStartMenu", disable_start->getState()); }); - // Hide Reboot System option in the quit menu. - auto show_rebootsystem = std::make_shared<SwitchComponent>(mWindow); - show_rebootsystem->setState(Settings::getInstance()->getBool("ShowRebootSystem")); - s->addWithLabel("SHOW \"REBOOT SYSTEM\" MENU ENTRY", show_rebootsystem); - s->addSaveFunc([show_rebootsystem] { Settings::getInstance()->setBool("ShowRebootSystem", - show_rebootsystem->getState()); }); + // Show help. + auto show_help = std::make_shared<SwitchComponent>(mWindow); + show_help->setState(Settings::getInstance()->getBool("ShowHelpPrompts")); + s->addWithLabel("ON-SCREEN HELP", show_help); + s->addSaveFunc([show_help] { Settings::getInstance()->setBool("ShowHelpPrompts", + show_help->getState()); }); - // Hide Power Off System option in the quit menu. - auto show_poweroffsystem = std::make_shared<SwitchComponent>(mWindow); - show_poweroffsystem->setState(Settings::getInstance()->getBool("ShowPoweroffSystem")); - s->addWithLabel("SHOW \"POWER OFF SYSTEM\" MENU ENTRY", show_poweroffsystem); - s->addSaveFunc([show_poweroffsystem] { Settings::getInstance()->setBool("ShowPoweroffSystem", - show_poweroffsystem->getState()); }); - - // Sort favorites on top of the gamelists. - auto favoritesFirstSwitch = std::make_shared<SwitchComponent>(mWindow); - favoritesFirstSwitch->setState(Settings::getInstance()->getBool("FavoritesFirst")); - s->addWithLabel("SORT FAVORITES ON TOP OF GAMELISTS", favoritesFirstSwitch); - s->addSaveFunc([favoritesFirstSwitch] { - if (Settings::getInstance()->setBool("FavoritesFirst", favoritesFirstSwitch->getState())) - for (auto it = SystemData::sSystemVector.cbegin(); it != - SystemData::sSystemVector.cend(); it++) { - - // The favorites and recent gamelists never sort favorites on top. - if ((*it)->getName() == "favorites" || (*it)->getName() == "recent" || - (*it)->getName() == "collections") - continue; - - // Don't re-sort custom collections as they have their own option - // for whether to sort favorites on top or not (FavFirstCustom). - if (CollectionSystemManager::get()->getIsCustomCollection((*it))) - continue; - - FileData* rootFolder = (*it)->getRootFolder(); - - rootFolder->sort(getSortTypeFromString(rootFolder->getSortTypeString()), - Settings::getInstance()->getBool("FavoritesFirst")); - ViewController::get()->reloadGameListView(*it); - - // Jump to the first row of the game list. - IGameListView* gameList = ViewController::get()->getGameListView((*it)).get(); - FileData* firstRow = gameList->getCursor()->getParent()->getChildrenListToDisplay()[0]; - gameList->setCursor(firstRow); - } - }); + // Screensaver. + ComponentListRow screensaver_row; + screensaver_row.elements.clear(); + screensaver_row.addElement(std::make_shared<TextComponent> + (mWindow, "SCREENSAVER SETTINGS", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); + screensaver_row.addElement(makeArrow(mWindow), false); + screensaver_row.makeAcceptInputHandler(std::bind(&GuiMenu::openScreensaverOptions, this)); + s->addRow(screensaver_row); mWindow->pushGui(s); } @@ -483,6 +450,24 @@ void GuiMenu::openOtherSettings() s->addSaveFunc([max_vram] { Settings::getInstance()->setInt("MaxVRAM", (int)Math::round(max_vram->getValue())); }); + // Fullscreen mode. + auto fullscreen_mode = std::make_shared< OptionListComponent<std::string> + >(mWindow, "FULLSCREEN MODE", false); + std::vector<std::string> screenmode; + screenmode.push_back("normal"); + screenmode.push_back("borderless"); + for (auto it = screenmode.cbegin(); it != screenmode.cend(); it++) + fullscreen_mode->add(*it, *it, Settings::getInstance()->getString("FullscreenMode") == *it); + s->addWithLabel("FULLSCREEN MODE (REQUIRES RESTART)", fullscreen_mode); + s->addSaveFunc([fullscreen_mode] { + if (Settings::getInstance()->getString("FullscreenMode") == "normal" + && fullscreen_mode->getSelected() != "normal") { + Settings::getInstance()->setString("PowerSaverMode", "default"); + PowerSaver::init(); + } + Settings::getInstance()->setString("FullscreenMode", fullscreen_mode->getSelected()); + }); + // Power saver. auto power_saver = std::make_shared< OptionListComponent<std::string> >(mWindow, "POWER SAVER MODES", false); @@ -505,7 +490,7 @@ void GuiMenu::openOtherSettings() PowerSaver::init(); }); - // Gamelists. + // When to save game metadata. auto gamelistsSaveMode = std::make_shared< OptionListComponent<std::string> >(mWindow, "SAVE METADATA", false); std::vector<std::string> saveModes; @@ -516,31 +501,31 @@ void GuiMenu::openOtherSettings() for (auto it = saveModes.cbegin(); it != saveModes.cend(); it++) gamelistsSaveMode->add(*it, *it, Settings::getInstance()-> getString("SaveGamelistsMode") == *it); - s->addWithLabel("SAVE METADATA", gamelistsSaveMode); + s->addWithLabel("WHEN TO SAVE GAME METADATA", gamelistsSaveMode); s->addSaveFunc([gamelistsSaveMode] { Settings::getInstance()->setString("SaveGamelistsMode", gamelistsSaveMode->getSelected()); }); - auto parse_gamelists = std::make_shared<SwitchComponent>(mWindow); - parse_gamelists->setState(Settings::getInstance()->getBool("ParseGamelistOnly")); - s->addWithLabel("PARSE GAMESLISTS ONLY", parse_gamelists); - s->addSaveFunc([parse_gamelists] { Settings::getInstance()-> - setBool("ParseGamelistOnly", parse_gamelists->getState()); }); - - auto local_art = std::make_shared<SwitchComponent>(mWindow); - local_art->setState(Settings::getInstance()->getBool("LocalArt")); - s->addWithLabel("SEARCH FOR LOCAL ART", local_art); - s->addSaveFunc([local_art] { Settings::getInstance()-> - setBool("LocalArt", local_art->getState()); }); - // Allow overriding of the launch string per game (the option // to disable this is intended primarily for testing purposes). auto launchstring_override = std::make_shared<SwitchComponent>(mWindow); launchstring_override->setState(Settings::getInstance()->getBool("LaunchstringOverride")); - s->addWithLabel("PER GAME LAUNCH STRING OVERRIDE", launchstring_override); + s->addWithLabel("ENABLE PER GAME LAUNCH STRING OVERRIDE", launchstring_override); s->addSaveFunc([launchstring_override] { Settings::getInstance()-> setBool("LaunchstringOverride", launchstring_override->getState()); }); + auto parse_gamelists = std::make_shared<SwitchComponent>(mWindow); + parse_gamelists->setState(Settings::getInstance()->getBool("ParseGamelistOnly")); + s->addWithLabel("ONLY SHOW ROMS FROM GAMELIST.XML FILES", parse_gamelists); + s->addSaveFunc([parse_gamelists] { Settings::getInstance()-> + setBool("ParseGamelistOnly", parse_gamelists->getState()); }); + + auto local_art = std::make_shared<SwitchComponent>(mWindow); + local_art->setState(Settings::getInstance()->getBool("LocalArt")); + s->addWithLabel("SEARCH FOR GAME ART IN \'%ROM%/IMAGES\'", local_art); + s->addSaveFunc([local_art] { Settings::getInstance()-> + setBool("LocalArt", local_art->getState()); }); + // Hidden files. auto hidden_files = std::make_shared<SwitchComponent>(mWindow); hidden_files->setState(Settings::getInstance()->getBool("ShowHiddenFiles")); @@ -548,6 +533,27 @@ void GuiMenu::openOtherSettings() s->addSaveFunc([hidden_files] { Settings::getInstance()->setBool("ShowHiddenFiles", hidden_files->getState()); }); + // Framerate. + auto framerate = std::make_shared<SwitchComponent>(mWindow); + framerate->setState(Settings::getInstance()->getBool("DrawFramerate")); + s->addWithLabel("SHOW FRAMERATE", framerate); + s->addSaveFunc([framerate] { Settings::getInstance()->setBool("DrawFramerate", + framerate->getState()); }); + + // Hide Reboot System option in the quit menu. + auto show_rebootsystem = std::make_shared<SwitchComponent>(mWindow); + show_rebootsystem->setState(Settings::getInstance()->getBool("ShowRebootSystem")); + s->addWithLabel("SHOW \"REBOOT SYSTEM\" MENU ENTRY", show_rebootsystem); + s->addSaveFunc([show_rebootsystem] { Settings::getInstance()->setBool("ShowRebootSystem", + show_rebootsystem->getState()); }); + + // Hide Power Off System option in the quit menu. + auto show_poweroffsystem = std::make_shared<SwitchComponent>(mWindow); + show_poweroffsystem->setState(Settings::getInstance()->getBool("ShowPoweroffSystem")); + s->addWithLabel("SHOW \"POWER OFF SYSTEM\" MENU ENTRY", show_poweroffsystem); + s->addSaveFunc([show_poweroffsystem] { Settings::getInstance()->setBool("ShowPoweroffSystem", + show_poweroffsystem->getState()); }); + #ifdef _RPI_ // Video Player - VideoOmxPlayer. auto omx_player = std::make_shared<SwitchComponent>(mWindow); @@ -568,13 +574,6 @@ void GuiMenu::openOtherSettings() #endif - // Framerate. - auto framerate = std::make_shared<SwitchComponent>(mWindow); - framerate->setState(Settings::getInstance()->getBool("DrawFramerate")); - s->addWithLabel("SHOW FRAMERATE", framerate); - s->addSaveFunc([framerate] { Settings::getInstance()->setBool("DrawFramerate", - framerate->getState()); }); - mWindow->pushGui(s); } diff --git a/es-app/src/guis/GuiMenu.h b/es-app/src/guis/GuiMenu.h index 8d2dc3a88..9273f9392 100644 --- a/es-app/src/guis/GuiMenu.h +++ b/es-app/src/guis/GuiMenu.h @@ -2,6 +2,7 @@ // GuiMenu.h // // Main menu. +// Some submenus are covered in separate source files. // #pragma once diff --git a/es-core/src/Settings.cpp b/es-core/src/Settings.cpp index ddd08068f..b257e5e75 100644 --- a/es-core/src/Settings.cpp +++ b/es-core/src/Settings.cpp @@ -95,12 +95,12 @@ void Settings::setDefaults() #endif mStringMap["FullscreenMode"] = "normal"; - mStringMap["TransitionStyle"] = "fade"; + mStringMap["TransitionStyle"] = "instant"; mStringMap["ThemeSet"] = ""; mStringMap["ScreenSaverBehavior"] = "dim"; mStringMap["Scraper"] = "ScreenScraper"; mStringMap["GamelistViewStyle"] = "automatic"; - mStringMap["SaveGamelistsMode"] = "on exit"; + mStringMap["SaveGamelistsMode"] = "always"; mBoolMap["ScreenSaverControls"] = true; mStringMap["ScreenSaverGameInfo"] = "never";