23 #include "serverpassword.h" 25 class ServerSimilarity
33 this->server = server;
34 this->similarity = similarity;
37 bool operator<(
const ServerSimilarity& other)
const 39 return similarity < other.similarity;
47 removeServer(v.game(), v.address(), v.port());
52 ServerPassword ServerPassword::deserializeQVariant(
const QVariant& v)
54 QVariantMap m = v.toMap();
56 o.setPhrase(m[
"phrase"].toString());
57 QVariantList variantServers = m[
"servers"].toList();
58 foreach (QVariant server, variantServers)
60 o.addServer(ServerPasswordSummary::deserializeQVariant(server));
65 QString ServerPassword::lastGame()
const 67 return lastServer().game();
75 if (!lastServer.isValid())
81 if (s.isValid() && s.time() > lastServer.time())
89 QString ServerPassword::lastServerName()
const 91 return lastServer().name();
94 QDateTime ServerPassword::lastTime()
const 96 return lastServer().time();
101 QList<ServerSimilarity> similarities;
106 similarities << ServerSimilarity(candidate, candidate.
similarity(other));
109 if (!similarities.empty())
112 if (outSimilarity != NULL)
114 *outSimilarity = similarities.last().similarity;
116 return similarities.last().server;
120 if (outSimilarity != NULL)
122 *outSimilarity = 0.0f;
128 void ServerPassword::removeServer(
const QString& game,
const QString& address,
unsigned short port)
130 QMutableListIterator<ServerPasswordSummary> it(d.servers);
134 if (server.game() == game && server.address() == address && server.port() == port)
141 QVariant ServerPassword::serializeQVariant()
const 144 m.insert(
"phrase", d.phrase);
145 QVariantList variantServers;
148 variantServers << s.serializeQVariant();
150 m.insert(
"servers", variantServers);
float similarity(const ServerPasswordSummary &other) const
Similarity to the 'other' server; between 0.0 and 1.0.