Mercurial > minori
comparison src/core/config.cc @ 231:69f4768a820c
chore: merge divergent branches
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Sat, 13 Jan 2024 09:43:41 -0500 |
| parents | d030b30526d5 |
| children | c130f47f6f48 |
comparison
equal
deleted
inserted
replaced
| 230:2f5a9247e501 | 231:69f4768a820c |
|---|---|
| 23 #include <QFile> | 23 #include <QFile> |
| 24 #include <QTextStream> | 24 #include <QTextStream> |
| 25 | 25 |
| 26 /* I'll use an INI-based config file instead of using an | 26 /* I'll use an INI-based config file instead of using an |
| 27 * XML file like Taiga. | 27 * XML file like Taiga. |
| 28 * | |
| 29 * It technically isn't to spec, because I'm making these case-sensitive. | |
| 30 * Boohoo. | |
| 28 */ | 31 */ |
| 29 | 32 |
| 30 int Config::Load() { | 33 int Config::Load() { |
| 31 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); | 34 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); |
| 32 | 35 |
| 33 mINI::INIFile file(cfg_path.string()); | 36 mINI::INIFile file(cfg_path.u8string()); |
| 34 mINI::INIStructure ini; | 37 mINI::INIStructure ini; |
| 35 file.read(ini); | 38 file.read(ini); |
| 36 | 39 |
| 37 service = Translate::ToService(INI::GetIniValue<std::string>(ini, "General", "Service", "None")); | 40 service = Translate::ToService(INI::GetIniValue<std::string>(ini, "General", "Service", "None")); |
| 38 | 41 |
| 88 | 91 |
| 89 locale.SetActiveLocale(QLocale(Strings::ToQString(INI::GetIniValue<std::string>(ini, "General", "Locale", "en_US")))); | 92 locale.SetActiveLocale(QLocale(Strings::ToQString(INI::GetIniValue<std::string>(ini, "General", "Locale", "en_US")))); |
| 90 | 93 |
| 91 theme.SetTheme(Translate::ToTheme(INI::GetIniValue<std::string>(ini, "Appearance", "Theme", "Default"))); | 94 theme.SetTheme(Translate::ToTheme(INI::GetIniValue<std::string>(ini, "Appearance", "Theme", "Default"))); |
| 92 | 95 |
| 96 { | |
| 97 std::vector<std::string> v = Strings::Split(INI::GetIniValue<std::string>(ini, "Library", "Folders", ""), ";"); | |
| 98 library.paths = std::set(std::make_move_iterator(v.begin()), | |
| 99 std::make_move_iterator(v.end())); | |
| 100 } | |
| 101 | |
| 102 library.real_time_monitor = INI::GetIniValue<bool>(ini, "Library", "Real-time monitor", true); | |
| 103 | |
| 93 return 0; | 104 return 0; |
| 94 } | 105 } |
| 95 | 106 |
| 96 int Config::Save() const { | 107 int Config::Save() const { |
| 97 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); | 108 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); |
| 129 INI::SetIniValue(ini, "Recognition/Browsers", player.name, enabled); | 140 INI::SetIniValue(ini, "Recognition/Browsers", player.name, enabled); |
| 130 break; | 141 break; |
| 131 } | 142 } |
| 132 } | 143 } |
| 133 | 144 |
| 145 INI::SetIniValue(ini, "Library", "Folders", Strings::Implode(library.paths, ";")); | |
| 146 INI::SetIniValue(ini, "Library", "Real-time monitor", library.real_time_monitor); | |
| 147 | |
| 134 file.write(ini); | 148 file.write(ini); |
| 135 | 149 |
| 136 return 0; | 150 return 0; |
| 137 } | 151 } |
