Previously this could cause problems if a version of the template generated for WriteSetting didn't use the type you needed (e.g. floating point values). Now these are all ready without having to be used within frontend_common first.
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.
As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
- Apply changes on Controller configuration of commit d037853 to Controller applet
- Fix regression of this previous commit:
Enabling a controller in its tab did not activate previous controllers
Signed-off-by: flodavid <fl.david.53@gmail.com>
- Show the right confirm dialog if wanted
- Create generic method to ask close confirmation
- Add "R + Plus + Minus" default shortcut to Restart emulation
- Add General setting to choose if a confirm dialog is shown when stopping
- Show the right confirm dialog if wanted
- Reuse dialog window that ask to close the game
- Add "L + Plus + Minus" default shortcut to Stop emulation
- Create generic question dialog based on TAS dialog
- It allows controller interaction on most dialogs
The VSync combobox wouldn't populate if there was no Vulkan device,
which caused issues with trying to set VSync on other backends.
This also adds another layer to GetCurrentGraphicsBackend to check for
broken Vulkan and return OpenGL instead of Vulkan.