about summary refs log tree commit diff stats
path: root/src/tracker_config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker_config.cpp')
-rw-r--r--src/tracker_config.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/tracker_config.cpp b/src/tracker_config.cpp index b0f4ac4..85164d5 100644 --- a/src/tracker_config.cpp +++ b/src/tracker_config.cpp
@@ -10,13 +10,23 @@ void TrackerConfig::Load() {
10 try { 10 try {
11 YAML::Node file = YAML::LoadFile(filename_); 11 YAML::Node file = YAML::LoadFile(filename_);
12 12
13 ap_server = file["ap_server"].as<std::string>(); 13 connection_details.ap_server = file["ap_server"].as<std::string>();
14 ap_player = file["ap_player"].as<std::string>(); 14 connection_details.ap_player = file["ap_player"].as<std::string>();
15 ap_password = file["ap_password"].as<std::string>(); 15 connection_details.ap_password = file["ap_password"].as<std::string>();
16 asked_to_check_for_updates = file["asked_to_check_for_updates"].as<bool>(); 16 asked_to_check_for_updates = file["asked_to_check_for_updates"].as<bool>();
17 should_check_for_updates = file["should_check_for_updates"].as<bool>(); 17 should_check_for_updates = file["should_check_for_updates"].as<bool>();
18 hybrid_areas = file["hybrid_areas"].as<bool>(); 18 hybrid_areas = file["hybrid_areas"].as<bool>();
19 show_hunt_panels = file["show_hunt_panels"].as<bool>(); 19 show_hunt_panels = file["show_hunt_panels"].as<bool>();
20
21 if (file["connection_history"]) {
22 for (const auto& connection : file["connection_history"]) {
23 connection_history.push_back(ConnectionDetails{
24 .ap_server = connection["ap_server"].as<std::string>(),
25 .ap_player = connection["ap_player"].as<std::string>(),
26 .ap_password = connection["ap_password"].as<std::string>()
27 });
28 }
29 }
20 } catch (const std::exception&) { 30 } catch (const std::exception&) {
21 // It's fine if the file can't be loaded. 31 // It's fine if the file can't be loaded.
22 } 32 }
@@ -24,13 +34,23 @@ void TrackerConfig::Load() {
24 34
25void TrackerConfig::Save() { 35void TrackerConfig::Save() {
26 YAML::Node output; 36 YAML::Node output;
27 output["ap_server"] = ap_server; 37 output["ap_server"] = connection_details.ap_server;
28 output["ap_player"] = ap_player; 38 output["ap_player"] = connection_details.ap_player;
29 output["ap_password"] = ap_password; 39 output["ap_password"] = connection_details.ap_password;
30 output["asked_to_check_for_updates"] = asked_to_check_for_updates; 40 output["asked_to_check_for_updates"] = asked_to_check_for_updates;
31 output["should_check_for_updates"] = should_check_for_updates; 41 output["should_check_for_updates"] = should_check_for_updates;
32 output["hybrid_areas"] = hybrid_areas; 42 output["hybrid_areas"] = hybrid_areas;
33 output["show_hunt_panels"] = show_hunt_panels; 43 output["show_hunt_panels"] = show_hunt_panels;
44
45 output.remove("connection_history");
46 for (const ConnectionDetails& details : connection_history) {
47 YAML::Node connection;
48 connection["ap_server"] = details.ap_server;
49 connection["ap_player"] = details.ap_player;
50 connection["ap_password"] = details.ap_password;
51
52 output["connection_history"].push_back(connection);
53 }
34 54
35 std::ofstream filewriter(filename_); 55 std::ofstream filewriter(filename_);
36 filewriter << output; 56 filewriter << output;