Mercurial > minori
comparison src/core/config.cc @ 250:c130f47f6f48
*: many many changes
e.g. the search page is actually implemented now!
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Sun, 04 Feb 2024 21:17:17 -0500 |
parents | d030b30526d5 |
children | 862d0d8619f6 |
comparison
equal
deleted
inserted
replaced
249:6b2441c776dd | 250:c130f47f6f48 |
---|---|
20 #include <fstream> | 20 #include <fstream> |
21 #include <limits.h> | 21 #include <limits.h> |
22 | 22 |
23 #include <QFile> | 23 #include <QFile> |
24 #include <QTextStream> | 24 #include <QTextStream> |
25 | |
26 #include <iostream> | |
25 | 27 |
26 /* I'll use an INI-based config file instead of using an | 28 /* I'll use an INI-based config file instead of using an |
27 * XML file like Taiga. | 29 * XML file like Taiga. |
28 * | 30 * |
29 * It technically isn't to spec, because I'm making these case-sensitive. | 31 * It technically isn't to spec, because I'm making these case-sensitive. |
87 enabled = INI::GetIniValue<bool>(ini, "Recognition/Browsers", player.name, true); | 89 enabled = INI::GetIniValue<bool>(ini, "Recognition/Browsers", player.name, true); |
88 break; | 90 break; |
89 } | 91 } |
90 } | 92 } |
91 | 93 |
94 locale.RefreshAvailableLocales(); | |
92 locale.SetActiveLocale(QLocale(Strings::ToQString(INI::GetIniValue<std::string>(ini, "General", "Locale", "en_US")))); | 95 locale.SetActiveLocale(QLocale(Strings::ToQString(INI::GetIniValue<std::string>(ini, "General", "Locale", "en_US")))); |
93 | 96 |
94 theme.SetTheme(Translate::ToTheme(INI::GetIniValue<std::string>(ini, "Appearance", "Theme", "Default"))); | 97 theme.SetTheme(Translate::ToTheme(INI::GetIniValue<std::string>(ini, "Appearance", "Theme", "Default"))); |
95 | 98 |
96 { | 99 { |
97 std::vector<std::string> v = Strings::Split(INI::GetIniValue<std::string>(ini, "Library", "Folders", ""), ";"); | 100 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()), | 101 for (const auto& s : v) |
99 std::make_move_iterator(v.end())); | 102 if (!library.paths.count(s)) |
103 library.paths.insert(s); | |
100 } | 104 } |
101 | 105 |
102 library.real_time_monitor = INI::GetIniValue<bool>(ini, "Library", "Real-time monitor", true); | 106 library.real_time_monitor = INI::GetIniValue<bool>(ini, "Library", "Real-time monitor", true); |
103 | 107 |
104 return 0; | 108 return 0; |
105 } | 109 } |
106 | 110 |
107 int Config::Save() const { | 111 int Config::Save() { |
108 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); | 112 std::filesystem::path cfg_path = Filesystem::GetConfigPath(); |
109 Filesystem::CreateDirectories(cfg_path); | 113 Filesystem::CreateDirectories(cfg_path); |
110 | 114 |
111 mINI::INIFile file(cfg_path.string()); | 115 mINI::INIFile file(cfg_path.string()); |
112 mINI::INIStructure ini; | 116 mINI::INIStructure ini; |