mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 22:25:38 +00:00
Merge pull request #435 from raelgc/431-improve-kids-mode
Improving kids mode
This commit is contained in:
commit
401b184615
|
@ -247,17 +247,19 @@ void FileFilterIndex::resetFilters()
|
||||||
|
|
||||||
void FileFilterIndex::setUIModeFilters()
|
void FileFilterIndex::setUIModeFilters()
|
||||||
{
|
{
|
||||||
if (!UIModeController::getInstance()->isUIModeFull())
|
if(!Settings::getInstance()->getBool("ForceDisableFilters")){
|
||||||
{
|
if (!UIModeController::getInstance()->isUIModeFull())
|
||||||
filterByHidden = true;
|
{
|
||||||
std::vector<std::string> val = { "FALSE" };
|
filterByHidden = true;
|
||||||
setFilter(HIDDEN_FILTER, &val);
|
std::vector<std::string> val = { "FALSE" };
|
||||||
}
|
setFilter(HIDDEN_FILTER, &val);
|
||||||
if (UIModeController::getInstance()->isUIModeKid())
|
}
|
||||||
{
|
if (UIModeController::getInstance()->isUIModeKid())
|
||||||
filterByKidGame = true;
|
{
|
||||||
std::vector<std::string> val = { "TRUE" };
|
filterByKidGame = true;
|
||||||
setFilter(KIDGAME_FILTER, &val);
|
std::vector<std::string> val = { "TRUE" };
|
||||||
|
setFilter(KIDGAME_FILTER, &val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,11 +77,14 @@ GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : Gui
|
||||||
mMenu.addWithLabel("SORT GAMES BY", mListSort);
|
mMenu.addWithLabel("SORT GAMES BY", mListSort);
|
||||||
}
|
}
|
||||||
// show filtered menu
|
// show filtered menu
|
||||||
row.elements.clear();
|
if(!Settings::getInstance()->getBool("ForceDisableFilters"))
|
||||||
row.addElement(std::make_shared<TextComponent>(mWindow, "FILTER GAMELIST", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true);
|
{
|
||||||
row.addElement(makeArrow(mWindow), false);
|
row.elements.clear();
|
||||||
row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::openGamelistFilter, this));
|
row.addElement(std::make_shared<TextComponent>(mWindow, "FILTER GAMELIST", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true);
|
||||||
mMenu.addRow(row);
|
row.addElement(makeArrow(mWindow), false);
|
||||||
|
row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::openGamelistFilter, this));
|
||||||
|
mMenu.addRow(row);
|
||||||
|
}
|
||||||
|
|
||||||
std::map<std::string, CollectionSystemData> customCollections = CollectionSystemManager::get()->getCustomCollectionSystems();
|
std::map<std::string, CollectionSystemData> customCollections = CollectionSystemManager::get()->getCustomCollectionSystems();
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "components/OptionListComponent.h"
|
#include "components/OptionListComponent.h"
|
||||||
#include "components/SliderComponent.h"
|
#include "components/SliderComponent.h"
|
||||||
|
#include "components/SwitchComponent.h"
|
||||||
#include "guis/GuiMsgBox.h"
|
#include "guis/GuiMsgBox.h"
|
||||||
#include "guis/GuiSlideshowScreensaverOptions.h"
|
#include "guis/GuiSlideshowScreensaverOptions.h"
|
||||||
#include "guis/GuiVideoScreensaverOptions.h"
|
#include "guis/GuiVideoScreensaverOptions.h"
|
||||||
|
@ -17,6 +18,12 @@ GuiGeneralScreensaverOptions::GuiGeneralScreensaverOptions(Window* window, const
|
||||||
Settings::getInstance()->setInt("ScreenSaverTime", (int)Math::round(screensaver_time->getValue()) * (1000 * 60));
|
Settings::getInstance()->setInt("ScreenSaverTime", (int)Math::round(screensaver_time->getValue()) * (1000 * 60));
|
||||||
PowerSaver::updateTimeouts();
|
PowerSaver::updateTimeouts();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Allow ScreenSaver Controls - ScreenSaverControls
|
||||||
|
auto ss_controls = std::make_shared<SwitchComponent>(mWindow);
|
||||||
|
ss_controls->setState(Settings::getInstance()->getBool("ScreenSaverControls"));
|
||||||
|
addWithLabel("SCREENSAVER CONTROLS", ss_controls);
|
||||||
|
addSaveFunc([ss_controls] { Settings::getInstance()->setBool("ScreenSaverControls", ss_controls->getState()); });
|
||||||
|
|
||||||
// screensaver behavior
|
// screensaver behavior
|
||||||
auto screensaver_behavior = std::make_shared< OptionListComponent<std::string> >(mWindow, "SCREENSAVER BEHAVIOR", false);
|
auto screensaver_behavior = std::make_shared< OptionListComponent<std::string> >(mWindow, "SCREENSAVER BEHAVIOR", false);
|
||||||
|
|
|
@ -39,8 +39,7 @@ GuiMenu::GuiMenu(Window* window) : GuiComponent(window), mMenu(window, "MAIN MEN
|
||||||
if (isFullUI)
|
if (isFullUI)
|
||||||
addEntry("CONFIGURE INPUT", 0x777777FF, true, [this] { openConfigInput(); });
|
addEntry("CONFIGURE INPUT", 0x777777FF, true, [this] { openConfigInput(); });
|
||||||
|
|
||||||
if (!(UIModeController::getInstance()->isUIModeKid() && Settings::getInstance()->getBool("hideQuitMenuOnKidUI")))
|
addEntry("QUIT", 0x777777FF, true, [this] {openQuitMenu(); });
|
||||||
addEntry("QUIT", 0x777777FF, true, [this] {openQuitMenu(); });
|
|
||||||
|
|
||||||
addChild(&mMenu);
|
addChild(&mMenu);
|
||||||
addVersionInfo();
|
addVersionInfo();
|
||||||
|
@ -309,6 +308,16 @@ void GuiMenu::openUISettings()
|
||||||
s->addWithLabel("ON-SCREEN HELP", show_help);
|
s->addWithLabel("ON-SCREEN HELP", show_help);
|
||||||
s->addSaveFunc([show_help] { Settings::getInstance()->setBool("ShowHelpPrompts", show_help->getState()); });
|
s->addSaveFunc([show_help] { Settings::getInstance()->setBool("ShowHelpPrompts", show_help->getState()); });
|
||||||
|
|
||||||
|
// enable filters (ForceDisableFilters)
|
||||||
|
auto enable_filter = std::make_shared<SwitchComponent>(mWindow);
|
||||||
|
enable_filter->setState(!Settings::getInstance()->getBool("ForceDisableFilters"));
|
||||||
|
s->addWithLabel("ENABLE FILTERS", enable_filter);
|
||||||
|
s->addSaveFunc([enable_filter] {
|
||||||
|
bool filter_is_enabled = !Settings::getInstance()->getBool("ForceDisableFilters");
|
||||||
|
Settings::getInstance()->setBool("ForceDisableFilters", !enable_filter->getState());
|
||||||
|
if (enable_filter->getState() != filter_is_enabled) ViewController::get()->ReloadAndGoToStart();
|
||||||
|
});
|
||||||
|
|
||||||
mWindow->pushGui(s);
|
mWindow->pushGui(s);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,12 +25,6 @@ GuiVideoScreensaverOptions::GuiVideoScreensaverOptions(Window* window, const cha
|
||||||
addSaveFunc([ss_omx, this] { Settings::getInstance()->setBool("ScreenSaverOmxPlayer", ss_omx->getState()); });
|
addSaveFunc([ss_omx, this] { Settings::getInstance()->setBool("ScreenSaverOmxPlayer", ss_omx->getState()); });
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Allow ScreenSaver Controls - ScreenSaverControls
|
|
||||||
auto ss_controls = std::make_shared<SwitchComponent>(mWindow);
|
|
||||||
ss_controls->setState(Settings::getInstance()->getBool("ScreenSaverControls"));
|
|
||||||
addWithLabel("SCREENSAVER CONTROLS", ss_controls);
|
|
||||||
addSaveFunc([ss_controls] { Settings::getInstance()->setBool("ScreenSaverControls", ss_controls->getState()); });
|
|
||||||
|
|
||||||
// Render Video Game Name as subtitles
|
// Render Video Game Name as subtitles
|
||||||
auto ss_info = std::make_shared< OptionListComponent<std::string> >(mWindow, "SHOW GAME INFO", false);
|
auto ss_info = std::make_shared< OptionListComponent<std::string> >(mWindow, "SHOW GAME INFO", false);
|
||||||
std::vector<std::string> info_type;
|
std::vector<std::string> info_type;
|
||||||
|
|
|
@ -132,6 +132,10 @@ bool parseArgs(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
Settings::getInstance()->setBool("ForceKid", true);
|
Settings::getInstance()->setBool("ForceKid", true);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(argv[i], "--force-disable-filters") == 0)
|
||||||
|
{
|
||||||
|
Settings::getInstance()->setBool("ForceDisableFilters", true);
|
||||||
|
}
|
||||||
else if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
|
else if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
|
||||||
{
|
{
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
@ -158,7 +162,9 @@ bool parseArgs(int argc, char* argv[])
|
||||||
"--windowed not fullscreen, should be used with --resolution\n"
|
"--windowed not fullscreen, should be used with --resolution\n"
|
||||||
"--vsync [1/on or 0/off] turn vsync on or off (default is on)\n"
|
"--vsync [1/on or 0/off] turn vsync on or off (default is on)\n"
|
||||||
"--max-vram [size] Max VRAM to use in Mb before swapping. 0 for unlimited\n"
|
"--max-vram [size] Max VRAM to use in Mb before swapping. 0 for unlimited\n"
|
||||||
|
"--force-kid Force the UI mode to be Kid\n"
|
||||||
"--force-kiosk Force the UI mode to be Kiosk\n"
|
"--force-kiosk Force the UI mode to be Kiosk\n"
|
||||||
|
"--force-disable-filters Force the UI to ignore applied filters in gamelist\n"
|
||||||
"--help, -h summon a sentient, angry tuba\n\n"
|
"--help, -h summon a sentient, angry tuba\n\n"
|
||||||
"More information available in README.md.\n";
|
"More information available in README.md.\n";
|
||||||
return false; //exit after printing help
|
return false; //exit after printing help
|
||||||
|
|
|
@ -196,7 +196,7 @@ bool SystemView::input(InputConfig* config, Input input)
|
||||||
config->isMappedTo("up", input) ||
|
config->isMappedTo("up", input) ||
|
||||||
config->isMappedTo("down", input))
|
config->isMappedTo("down", input))
|
||||||
listInput(0);
|
listInput(0);
|
||||||
if(config->isMappedTo("select", input) && Settings::getInstance()->getBool("ScreenSaverControls"))
|
if(!UIModeController::getInstance()->isUIModeKid() && config->isMappedTo("select", input) && Settings::getInstance()->getBool("ScreenSaverControls"))
|
||||||
{
|
{
|
||||||
mWindow->startScreenSaver();
|
mWindow->startScreenSaver();
|
||||||
mWindow->renderScreenSaver();
|
mWindow->renderScreenSaver();
|
||||||
|
@ -382,7 +382,7 @@ std::vector<HelpPrompt> SystemView::getHelpPrompts()
|
||||||
prompts.push_back(HelpPrompt("a", "select"));
|
prompts.push_back(HelpPrompt("a", "select"));
|
||||||
prompts.push_back(HelpPrompt("x", "random"));
|
prompts.push_back(HelpPrompt("x", "random"));
|
||||||
|
|
||||||
if (Settings::getInstance()->getBool("ScreenSaverControls"))
|
if (!UIModeController::getInstance()->isUIModeKid() && Settings::getInstance()->getBool("ScreenSaverControls"))
|
||||||
prompts.push_back(HelpPrompt("select", "launch screensaver"));
|
prompts.push_back(HelpPrompt("select", "launch screensaver"));
|
||||||
|
|
||||||
return prompts;
|
return prompts;
|
||||||
|
|
|
@ -357,7 +357,7 @@ bool ViewController::input(InputConfig* config, Input input)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// open menu
|
// open menu
|
||||||
if(config->isMappedTo("start", input) && input.value != 0)
|
if(!UIModeController::getInstance()->isUIModeKid() && config->isMappedTo("start", input) && input.value != 0)
|
||||||
{
|
{
|
||||||
// open menu
|
// open menu
|
||||||
mWindow->pushGui(new GuiMenu(mWindow));
|
mWindow->pushGui(new GuiMenu(mWindow));
|
||||||
|
@ -512,7 +512,8 @@ std::vector<HelpPrompt> ViewController::getHelpPrompts()
|
||||||
return prompts;
|
return prompts;
|
||||||
|
|
||||||
prompts = mCurrentView->getHelpPrompts();
|
prompts = mCurrentView->getHelpPrompts();
|
||||||
prompts.push_back(HelpPrompt("start", "menu"));
|
if(!UIModeController::getInstance()->isUIModeKid())
|
||||||
|
prompts.push_back(HelpPrompt("start", "menu"));
|
||||||
|
|
||||||
return prompts;
|
return prompts;
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,10 +150,11 @@ std::vector<HelpPrompt> BasicGameListView::getHelpPrompts()
|
||||||
prompts.push_back(HelpPrompt("up/down", "choose"));
|
prompts.push_back(HelpPrompt("up/down", "choose"));
|
||||||
prompts.push_back(HelpPrompt("a", "launch"));
|
prompts.push_back(HelpPrompt("a", "launch"));
|
||||||
prompts.push_back(HelpPrompt("b", "back"));
|
prompts.push_back(HelpPrompt("b", "back"));
|
||||||
prompts.push_back(HelpPrompt("select", "options"));
|
if(!UIModeController::getInstance()->isUIModeKid())
|
||||||
|
prompts.push_back(HelpPrompt("select", "options"));
|
||||||
if(mRoot->getSystem()->isGameSystem())
|
if(mRoot->getSystem()->isGameSystem())
|
||||||
prompts.push_back(HelpPrompt("x", "random"));
|
prompts.push_back(HelpPrompt("x", "random"));
|
||||||
if(mRoot->getSystem()->isGameSystem() && !UIModeController::getInstance()->isUIModeKid())
|
if(mRoot->getSystem()->isGameSystem() && UIModeController::getInstance()->isUIModeFull())
|
||||||
{
|
{
|
||||||
std::string prompt = CollectionSystemManager::get()->getEditingCollection();
|
std::string prompt = CollectionSystemManager::get()->getEditingCollection();
|
||||||
prompts.push_back(HelpPrompt("y", prompt));
|
prompts.push_back(HelpPrompt("y", prompt));
|
||||||
|
|
|
@ -368,7 +368,8 @@ std::vector<HelpPrompt> GridGameListView::getHelpPrompts()
|
||||||
prompts.push_back(HelpPrompt("up/down/left/right", "choose"));
|
prompts.push_back(HelpPrompt("up/down/left/right", "choose"));
|
||||||
prompts.push_back(HelpPrompt("a", "launch"));
|
prompts.push_back(HelpPrompt("a", "launch"));
|
||||||
prompts.push_back(HelpPrompt("b", "back"));
|
prompts.push_back(HelpPrompt("b", "back"));
|
||||||
prompts.push_back(HelpPrompt("select", "options"));
|
if(!UIModeController::getInstance()->isUIModeKid())
|
||||||
|
prompts.push_back(HelpPrompt("select", "options"));
|
||||||
if(mRoot->getSystem()->isGameSystem())
|
if(mRoot->getSystem()->isGameSystem())
|
||||||
prompts.push_back(HelpPrompt("x", "random"));
|
prompts.push_back(HelpPrompt("x", "random"));
|
||||||
if(mRoot->getSystem()->isGameSystem() && !UIModeController::getInstance()->isUIModeKid())
|
if(mRoot->getSystem()->isGameSystem() && !UIModeController::getInstance()->isUIModeKid())
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "views/gamelist/IGameListView.h"
|
#include "views/gamelist/IGameListView.h"
|
||||||
|
|
||||||
#include "guis/GuiGamelistOptions.h"
|
#include "guis/GuiGamelistOptions.h"
|
||||||
|
#include "views/UIModeController.h"
|
||||||
#include "views/ViewController.h"
|
#include "views/ViewController.h"
|
||||||
#include "Sound.h"
|
#include "Sound.h"
|
||||||
#include "Window.h"
|
#include "Window.h"
|
||||||
|
@ -8,7 +9,7 @@
|
||||||
bool IGameListView::input(InputConfig* config, Input input)
|
bool IGameListView::input(InputConfig* config, Input input)
|
||||||
{
|
{
|
||||||
// select to open GuiGamelistOptions
|
// select to open GuiGamelistOptions
|
||||||
if(config->isMappedTo("select", input) && input.value)
|
if(!UIModeController::getInstance()->isUIModeKid() && config->isMappedTo("select", input) && input.value)
|
||||||
{
|
{
|
||||||
Sound::getFromTheme(mTheme, getName(), "menuOpen")->play();
|
Sound::getFromTheme(mTheme, getName(), "menuOpen")->play();
|
||||||
mWindow->pushGui(new GuiGamelistOptions(mWindow, this->mRoot->getSystem()));
|
mWindow->pushGui(new GuiGamelistOptions(mWindow, this->mRoot->getSystem()));
|
||||||
|
|
|
@ -146,7 +146,7 @@ bool ISimpleGameListView::input(InputConfig* config, Input input)
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}else if (config->isMappedTo("y", input) && !(UIModeController::getInstance()->isUIModeKid()))
|
}else if (config->isMappedTo("y", input) && UIModeController::getInstance()->isUIModeFull())
|
||||||
{
|
{
|
||||||
if(mRoot->getSystem()->isGameSystem())
|
if(mRoot->getSystem()->isGameSystem())
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,6 +18,7 @@ std::vector<const char*> settings_dont_save {
|
||||||
{ "DebugImage" },
|
{ "DebugImage" },
|
||||||
{ "ForceKid" },
|
{ "ForceKid" },
|
||||||
{ "ForceKiosk" },
|
{ "ForceKiosk" },
|
||||||
|
{ "ForceDisableFilters" },
|
||||||
{ "IgnoreGamelist" },
|
{ "IgnoreGamelist" },
|
||||||
{ "HideConsole" },
|
{ "HideConsole" },
|
||||||
{ "ShowExit" },
|
{ "ShowExit" },
|
||||||
|
@ -138,7 +139,7 @@ void Settings::setDefaults()
|
||||||
mStringMap["UIMode_passkey"] = "uuddlrlrba";
|
mStringMap["UIMode_passkey"] = "uuddlrlrba";
|
||||||
mBoolMap["ForceKiosk"] = false;
|
mBoolMap["ForceKiosk"] = false;
|
||||||
mBoolMap["ForceKid"] = false;
|
mBoolMap["ForceKid"] = false;
|
||||||
mBoolMap["hideQuitMenuOnKidUI"] = false;
|
mBoolMap["ForceDisableFilters"] = false;
|
||||||
|
|
||||||
mIntMap["WindowWidth"] = 0;
|
mIntMap["WindowWidth"] = 0;
|
||||||
mIntMap["WindowHeight"] = 0;
|
mIntMap["WindowHeight"] = 0;
|
||||||
|
|
Loading…
Reference in a new issue