refactor proxy destinations menu generation

This commit is contained in:
Martin Michelsen
2022-06-04 22:15:05 -07:00
parent a4f82cd821
commit 35d9f12e0a
+26 -20
View File
@@ -266,30 +266,36 @@ void ServerState::create_menus(shared_ptr<const JSONObject> config_json) {
this->information_menu_gc = information_menu_gc; this->information_menu_gc = information_menu_gc;
this->information_contents = information_contents; this->information_contents = information_contents;
this->proxy_destinations_menu_pc.emplace_back(ProxyDestinationsMenuItemID::GO_BACK, auto generate_proxy_destinations_menu = +[](
u"Go back", u"Return to the\nmain menu", 0); vector<MenuItem>& ret_menu,
this->proxy_destinations_menu_gc.emplace_back(ProxyDestinationsMenuItemID::GO_BACK, vector<pair<string, uint16_t>>& ret_pds,
u"Go back", u"Return to the\nmain menu", 0); const unordered_map<string, shared_ptr<JSONObject>>& d) {
{ ret_menu.clear();
ret_pds.clear();
ret_menu.emplace_back(ProxyDestinationsMenuItemID::GO_BACK, u"Go back",
u"Return to the\nmain menu", 0);
uint32_t item_id = 0; uint32_t item_id = 0;
for (const auto& item : d.at("ProxyDestinations-GC")->as_dict()) { for (const auto& item : d) {
const string& netloc_str = item.second->as_string(); const string& netloc_str = item.second->as_string();
this->proxy_destinations_menu_gc.emplace_back(item_id, decode_sjis(item.first), const string& description = "$C7Remote server:\n$C6" + netloc_str;
decode_sjis(netloc_str), 0); ret_menu.emplace_back(item_id, decode_sjis(item.first),
this->proxy_destinations_gc.emplace_back(parse_netloc(netloc_str)); decode_sjis(description), 0);
ret_pds.emplace_back(parse_netloc(netloc_str));
item_id++; item_id++;
} }
} };
{
uint32_t item_id = 0; generate_proxy_destinations_menu(
for (const auto& item : d.at("ProxyDestinations-PC")->as_dict()) { this->proxy_destinations_menu_pc,
const string& netloc_str = item.second->as_string(); this->proxy_destinations_pc,
this->proxy_destinations_menu_pc.emplace_back(item_id, decode_sjis(item.first), d.at("ProxyDestinations-PC")->as_dict());
decode_sjis(netloc_str), 0); generate_proxy_destinations_menu(
this->proxy_destinations_pc.emplace_back(parse_netloc(netloc_str)); this->proxy_destinations_menu_gc,
item_id++; this->proxy_destinations_gc,
} d.at("ProxyDestinations-GC")->as_dict());
}
try { try {
const string& netloc_str = d.at("ProxyDestination-Patch")->as_string(); const string& netloc_str = d.at("ProxyDestination-Patch")->as_string();
this->proxy_destination_patch = parse_netloc(netloc_str); this->proxy_destination_patch = parse_netloc(netloc_str);