diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-19 20:29:13 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-20 10:46:09 +0100 |
commit | aa2613c7037bd12448d58714b4bb317ea939d892 (patch) | |
tree | 8fb57a581b439b08d95a85ad57c2b6d1d91e17c4 /src/gui/serverdialog.cpp | |
parent | bbbc318634f3be2c4d755e71d99cdfba5c2b82f3 (diff) | |
download | mana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.gz mana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.bz2 mana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.xz mana-aa2613c7037bd12448d58714b4bb317ea939d892.zip |
Wrapped xmlNodePtr access with a Node class
Slightly more ergonomic and this eliminates direct libxml2 usage from
many places.
Diffstat (limited to 'src/gui/serverdialog.cpp')
-rw-r--r-- | src/gui/serverdialog.cpp | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp index d437baae..bb978a78 100644 --- a/src/gui/serverdialog.cpp +++ b/src/gui/serverdialog.cpp @@ -427,15 +427,15 @@ void ServerDialog::downloadServerList() void ServerDialog::loadServers() { XML::Document doc(mDir + "/serverlist.xml", false); - xmlNodePtr rootNode = doc.rootNode(); + XML::Node rootNode = doc.rootNode(); - if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "serverlist")) + if (!rootNode || rootNode.name() != "serverlist") { logger->log("Error loading server list!"); return; } - int version = XML::getProperty(rootNode, "version", 0); + int version = rootNode.getProperty("version", 0); if (version != 1) { logger->log("Error: unsupported online server list version: %d", @@ -443,14 +443,14 @@ void ServerDialog::loadServers() return; } - for (auto serverNode : XML::Children(rootNode)) + for (auto serverNode : rootNode.children()) { - if (!xmlStrEqual(serverNode->name, BAD_CAST "server")) + if (serverNode.name() != "server") continue; ServerInfo server; - std::string type = XML::getProperty(serverNode, "type", "unknown"); + std::string type = serverNode.getProperty("type", "unknown"); server.type = ServerInfo::parseType(type); @@ -466,9 +466,9 @@ void ServerDialog::loadServers() continue; } - server.name = XML::getProperty(serverNode, "name", std::string()); + server.name = serverNode.getProperty("name", std::string()); - std::string version = XML::getProperty(serverNode, "minimumVersion", + std::string version = serverNode.getProperty("minimumVersion", std::string()); bool meetsMinimumVersion = compareStrI(version, PACKAGE_VERSION) <= 0; @@ -481,30 +481,26 @@ void ServerDialog::loadServers() else version = strprintf(_("requires v%s"), version.c_str()); - for (auto subNode : XML::Children(serverNode)) + for (auto subNode : serverNode.children()) { - if (xmlStrEqual(subNode->name, BAD_CAST "connection")) + if (subNode.name() == "connection") { - server.hostname = XML::getProperty(subNode, "hostname", std::string()); - server.port = XML::getProperty(subNode, "port", 0); + server.hostname = subNode.getProperty("hostname", std::string()); + server.port = subNode.getProperty("port", 0); if (server.port == 0) { // If no port is given, use the default for the given type server.port = ServerInfo::defaultPortForServerType(server.type); } } - else if (subNode->children && subNode->children->content) + else if (subNode.name() == "description") { - const char *text = (const char*) subNode->children->content; - - if (xmlStrEqual(subNode->name, BAD_CAST "description")) - { - server.description = text; - } - else if (xmlStrEqual(subNode->name, BAD_CAST "persistentIp")) - { - server.persistentIp = strcmp(text, "1") == 0 || strcmp(text, "true") == 0; - } + server.description = subNode.textContent(); + } + else if (subNode.name() == "persistentIp") + { + const auto text = subNode.textContent(); + server.persistentIp = text == "1" || text == "true"; } } |