From d532e4937fbf9c1d1458f9bdfb02ed54c50122c3 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 7 Mar 2024 10:31:22 -0500 Subject: Added connection history --- src/tracker_config.cpp | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'src/tracker_config.cpp') 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() { try { YAML::Node file = YAML::LoadFile(filename_); - ap_server = file["ap_server"].as(); - ap_player = file["ap_player"].as(); - ap_password = file["ap_password"].as(); + connection_details.ap_server = file["ap_server"].as(); + connection_details.ap_player = file["ap_player"].as(); + connection_details.ap_password = file["ap_password"].as(); asked_to_check_for_updates = file["asked_to_check_for_updates"].as(); should_check_for_updates = file["should_check_for_updates"].as(); hybrid_areas = file["hybrid_areas"].as(); show_hunt_panels = file["show_hunt_panels"].as(); + + if (file["connection_history"]) { + for (const auto& connection : file["connection_history"]) { + connection_history.push_back(ConnectionDetails{ + .ap_server = connection["ap_server"].as(), + .ap_player = connection["ap_player"].as(), + .ap_password = connection["ap_password"].as() + }); + } + } } catch (const std::exception&) { // It's fine if the file can't be loaded. } @@ -24,13 +34,23 @@ void TrackerConfig::Load() { void TrackerConfig::Save() { YAML::Node output; - output["ap_server"] = ap_server; - output["ap_player"] = ap_player; - output["ap_password"] = ap_password; + output["ap_server"] = connection_details.ap_server; + output["ap_player"] = connection_details.ap_player; + output["ap_password"] = connection_details.ap_password; output["asked_to_check_for_updates"] = asked_to_check_for_updates; output["should_check_for_updates"] = should_check_for_updates; output["hybrid_areas"] = hybrid_areas; output["show_hunt_panels"] = show_hunt_panels; + + output.remove("connection_history"); + for (const ConnectionDetails& details : connection_history) { + YAML::Node connection; + connection["ap_server"] = details.ap_server; + connection["ap_player"] = details.ap_player; + connection["ap_password"] = details.ap_password; + + output["connection_history"].push_back(connection); + } std::ofstream filewriter(filename_); filewriter << output; -- cgit 1.4.1