diff --git a/es-app/src/SystemData.cpp b/es-app/src/SystemData.cpp index 29157cae5..51c779f5e 100644 --- a/es-app/src/SystemData.cpp +++ b/es-app/src/SystemData.cpp @@ -55,7 +55,7 @@ SystemData::SystemData(const std::string& name, const std::string& fullName, con SystemData::~SystemData() { //save changed game data back to xml - if(!Settings::getInstance()->getBool("IgnoreGamelist")) + if(!Settings::getInstance()->getBool("IgnoreGamelist") && Settings::getInstance()->getBool("SaveGamelistsOnExit")) { updateGamelist(this); } diff --git a/es-app/src/guis/GuiMenu.cpp b/es-app/src/guis/GuiMenu.cpp index 8478d98eb..95061e599 100644 --- a/es-app/src/guis/GuiMenu.cpp +++ b/es-app/src/guis/GuiMenu.cpp @@ -165,6 +165,19 @@ GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MEN mWindow->pushGui(s); }); + addEntry("OTHER SETTINGS", 0x777777FF, true, + [this] { + auto s = new GuiSettings(mWindow, "OTHER SETTINGS"); + + // gamelists + auto save_gamelists = std::make_shared(mWindow); + save_gamelists->setState(Settings::getInstance()->getBool("SaveGamelistsOnExit")); + s->addWithLabel("SAVE METADATA ON EXIT", save_gamelists); + s->addSaveFunc([save_gamelists] { Settings::getInstance()->setBool("SaveGamelistsOnExit", save_gamelists->getState()); }); + + mWindow->pushGui(s); + }); + addEntry("CONFIGURE INPUT", 0x777777FF, true, [this] { mWindow->pushGui(new GuiDetectDevice(mWindow, false, nullptr)); diff --git a/es-core/src/Settings.cpp b/es-core/src/Settings.cpp index 779ee7142..859f07b9d 100644 --- a/es-core/src/Settings.cpp +++ b/es-core/src/Settings.cpp @@ -59,6 +59,7 @@ void Settings::setDefaults() mBoolMap["IgnoreGamelist"] = false; mBoolMap["HideConsole"] = true; mBoolMap["QuickSystemSelect"] = true; + mBoolMap["SaveGamelistsOnExit"] = true; mBoolMap["Debug"] = false; mBoolMap["DebugGrid"] = false;