summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-08-26 00:48:25 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-08-26 00:48:25 -0400
commit36dbb4bad74b097d44b843a2e934aa4a58ef6492 (patch)
treefc599b222b399a5f3e1b691d008970bb1db5075b /src/settings.cpp
parent7395fbb7544740a136884e103cb0829bd10b5655 (diff)
ServerList instead of a QList of ServerInfo
changed preferred to an int moved all server settings to Settings
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 9975642b..5ddffd8f 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -884,17 +884,42 @@ std::map<QString, int> Settings::getPreferredServers()
return result;
}
-void Settings::updateServers(const QList<ServerInfo> &servers)
+ServerList Settings::getServers() const
+{
+ ServerList list;
+
+ m_Settings.beginGroup("Servers");
+
+ for (const QString &serverKey : m_Settings.childKeys()) {
+ QVariantMap data = m_Settings.value(serverKey).toMap();
+
+ ServerInfo server(
+ serverKey,
+ data["premium"].toBool(),
+ data["lastSeen"].toDate(),
+ data["preferred"].toInt(),
+ data["downloadCount"].toInt(),
+ data["downloadSpeed"].toDouble());
+
+ list.add(std::move(server));
+ }
+
+ m_Settings.endGroup();
+
+ return list;
+}
+
+void Settings::updateServers(const ServerList& servers)
{
m_Settings.beginGroup("Servers");
QStringList oldServerKeys = m_Settings.childKeys();
- for (const ServerInfo &server : servers) {
+ for (const auto& server : servers) {
if (!oldServerKeys.contains(server.name())) {
// not yet known server
QVariantMap newVal;
newVal["premium"] = server.isPremium();
- newVal["preferred"] = server.isPreferred() ? 1 : 0;
+ newVal["preferred"] = server.preferred();
newVal["lastSeen"] = server.lastSeen();
newVal["downloadCount"] = 0;
newVal["downloadSpeed"] = 0.0;
@@ -902,12 +927,13 @@ void Settings::updateServers(const QList<ServerInfo> &servers)
m_Settings.setValue(server.name(), newVal);
} else {
QVariantMap data = m_Settings.value(server.name()).toMap();
- data["lastSeen"] = server.lastSeen();
data["premium"] = server.isPremium();
+ data["lastSeen"] = server.lastSeen();
+ data["preferred"] = server.preferred();
m_Settings.setValue(server.name(), data);
- }
}
+ }
// clean up unavailable servers
QDate now = QDate::currentDate();