Commit graph

11 commits

Author SHA1 Message Date
t895
c90fc6308c frontend_common: config: Refactor WriteSetting to stricter types
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.
2023-12-30 15:11:36 -05:00
t895
d71e264ece frontend_common: Fix settings reload bug
This clears the touch_from_button_maps array before we read new data into it because this read duplicate data on a reload otherwise.
2023-12-12 17:25:36 -05:00
t895
f22099942f android: Multi directory UI 2023-11-27 23:46:29 -05:00
t895
ee2429c06c frontend_common: Don't specify default value for screenshot_path 2023-11-23 00:36:45 -05:00
t895
c7e3a53f33 frontend_common: Don't load config files that we fail to open 2023-11-23 00:30:49 -05:00
t895
eb0d351274 frontend_common: Add option to read unsigned integers 2023-11-21 21:01:46 -05:00
t895
73ad94a025 frontend_common: Set config array size to 0 if the array is ended without changing its index 2023-11-21 15:14:41 -05:00
t895
3e303a259c frontend_common: Manually handle opening config file
SimpleIni only has the ability to use ANSI strings for config paths so this breaks opening configs on paths with special characters. This ensures that we open the right path on each platform.
2023-11-21 14:53:32 -05:00
t895
f745e602ec frontend_common: Add special config case for unmapped windows network drives
Normally we save paths with '/' as the delimiter for each segment but when you manually select a network drive instead of using a mapped location, this would break. This ensures that if the read filesystem location starts with '//', we keep that pattern.
2023-11-21 01:58:13 -05:00
t895
c8177cfc1d frontend_common: Disable UTF-8 BOM in config 2023-11-21 01:58:13 -05:00
t895
230bd06245 config: Unify config handling under frontend_common
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.
2023-11-21 01:58:13 -05:00