1 #include "serverssettings.h"
2
3 #include <QDebug>
4 #include <utility>
5
ServersSettings(QString settingPath,QObject * parent)6 ServersSettings::ServersSettings(QString settingPath, QObject *parent)
7 : SettingsManager(settingPath + "servers.ini", parent)
8 {
9 }
10
setPreviousHostLogin(int previous)11 void ServersSettings::setPreviousHostLogin(int previous)
12 {
13 setValue(previous, "previoushostlogin", "server");
14 }
15
getPreviousHostLogin()16 int ServersSettings::getPreviousHostLogin()
17 {
18 QVariant previous = getValue("previoushostlogin", "server");
19 return previous == QVariant() ? 1 : previous.toInt();
20 }
21
setPreviousHostList(QStringList list)22 void ServersSettings::setPreviousHostList(QStringList list)
23 {
24 setValue(list, "previoushosts", "server");
25 }
26
getPreviousHostList()27 QStringList ServersSettings::getPreviousHostList()
28 {
29 return getValue("previoushosts", "server").toStringList();
30 }
31
setPrevioushostName(const QString & name)32 void ServersSettings::setPrevioushostName(const QString &name)
33 {
34 setValue(name, "previoushostName", "server");
35 }
36
getSaveName(QString defaultname)37 QString ServersSettings::getSaveName(QString defaultname)
38 {
39 int index = getPrevioushostindex(getPrevioushostName());
40 QVariant saveName = getValue(QString("saveName%1").arg(index), "server", "server_details");
41 return saveName == QVariant() ? std::move(defaultname) : saveName.toString();
42 }
43
getSite(QString defaultSite)44 QString ServersSettings::getSite(QString defaultSite)
45 {
46 int index = getPrevioushostindex(getPrevioushostName());
47 QVariant site = getValue(QString("site%1").arg(index), "server", "server_details");
48 return site == QVariant() ? std::move(defaultSite) : site.toString();
49 }
50
getPrevioushostName()51 QString ServersSettings::getPrevioushostName()
52 {
53 QVariant value = getValue("previoushostName", "server");
54 return value == QVariant() ? "Rooster Ranges" : value.toString();
55 }
56
getPrevioushostindex(const QString & saveName)57 int ServersSettings::getPrevioushostindex(const QString &saveName)
58 {
59 int size = getValue("totalServers", "server", "server_details").toInt() + 1;
60
61 for (int i = 0; i < size; i++)
62 if (saveName == getValue(QString("saveName%1").arg(i), "server", "server_details").toString())
63 return i;
64
65 return -1;
66 }
67
setHostName(QString hostname)68 void ServersSettings::setHostName(QString hostname)
69 {
70 setValue(hostname, "hostname", "server");
71 }
72
getHostname(QString defaultHost)73 QString ServersSettings::getHostname(QString defaultHost)
74 {
75 int index = getPrevioushostindex(getPrevioushostName());
76 QVariant hostname = getValue(QString("server%1").arg(index), "server", "server_details");
77 return hostname == QVariant() ? std::move(defaultHost) : hostname.toString();
78 }
79
setPort(QString port)80 void ServersSettings::setPort(QString port)
81 {
82 setValue(port, "port", "server");
83 }
84
getPort(QString defaultPort)85 QString ServersSettings::getPort(QString defaultPort)
86 {
87 int index = getPrevioushostindex(getPrevioushostName());
88 QVariant port = getValue(QString("port%1").arg(index), "server", "server_details");
89 qDebug() << "getPort() index = " << index << " port.val = " << port.toString();
90 return port == QVariant() ? std::move(defaultPort) : port.toString();
91 }
92
setPlayerName(QString playerName)93 void ServersSettings::setPlayerName(QString playerName)
94 {
95 setValue(playerName, "playername", "server");
96 }
97
getPlayerName(QString defaultName)98 QString ServersSettings::getPlayerName(QString defaultName)
99 {
100 int index = getPrevioushostindex(getPrevioushostName());
101 QVariant name = getValue(QString("username%1").arg(index), "server", "server_details");
102 qDebug() << "getPlayerName() index = " << index << " name.val = " << name.toString();
103 return name == QVariant() ? std::move(defaultName) : name.toString();
104 }
105
getPassword()106 QString ServersSettings::getPassword()
107 {
108 int index = getPrevioushostindex(getPrevioushostName());
109
110 if (getSavePassword())
111 return getValue(QString("password%1").arg(index), "server", "server_details").toString();
112
113 return QString();
114 }
115
getSavePassword()116 bool ServersSettings::getSavePassword()
117 {
118 int index = getPrevioushostindex(getPrevioushostName());
119 bool save = getValue(QString("savePassword%1").arg(index), "server", "server_details").toBool();
120 return save;
121 }
122
setPassword(QString password)123 void ServersSettings::setPassword(QString password)
124 {
125 setValue(password, "password", "server");
126 }
127
setSavePassword(int save)128 void ServersSettings::setSavePassword(int save)
129 {
130 setValue(save, "save_password", "server");
131 }
132
setAutoConnect(int autoconnect)133 void ServersSettings::setAutoConnect(int autoconnect)
134 {
135 setValue(autoconnect, "auto_connect", "server");
136 }
137
getAutoConnect()138 int ServersSettings::getAutoConnect()
139 {
140 QVariant autoconnect = getValue("auto_connect", "server");
141 return autoconnect == QVariant() ? 0 : autoconnect.toInt();
142 }
143
setFPHostName(QString hostname)144 void ServersSettings::setFPHostName(QString hostname)
145 {
146 setValue(hostname, "fphostname", "server");
147 }
148
getFPHostname(QString defaultHost)149 QString ServersSettings::getFPHostname(QString defaultHost)
150 {
151 QVariant hostname = getValue("fphostname", "server");
152 return hostname == QVariant() ? std::move(defaultHost) : hostname.toString();
153 }
154
setFPPort(QString port)155 void ServersSettings::setFPPort(QString port)
156 {
157 setValue(port, "fpport", "server");
158 }
159
getFPPort(QString defaultPort)160 QString ServersSettings::getFPPort(QString defaultPort)
161 {
162 QVariant port = getValue("fpport", "server");
163 return port == QVariant() ? std::move(defaultPort) : port.toString();
164 }
165
setFPPlayerName(QString playerName)166 void ServersSettings::setFPPlayerName(QString playerName)
167 {
168 setValue(playerName, "fpplayername", "server");
169 }
170
getFPPlayerName(QString defaultName)171 QString ServersSettings::getFPPlayerName(QString defaultName)
172 {
173 QVariant name = getValue("fpplayername", "server");
174 return name == QVariant() ? std::move(defaultName) : name.toString();
175 }
176
setClearDebugLogStatus(bool abIsChecked)177 void ServersSettings::setClearDebugLogStatus(bool abIsChecked)
178 {
179 setValue(abIsChecked, "save_debug_log", "server");
180 }
181
getClearDebugLogStatus(bool abDefaultValue)182 bool ServersSettings::getClearDebugLogStatus(bool abDefaultValue)
183 {
184 QVariant cbFlushLog = getValue("save_debug_log", "server");
185 return cbFlushLog == QVariant() ? abDefaultValue : cbFlushLog.toBool();
186 }
187
addNewServer(const QString & saveName,const QString & serv,const QString & port,const QString & username,const QString & password,bool savePassword,const QString & site)188 void ServersSettings::addNewServer(const QString &saveName,
189 const QString &serv,
190 const QString &port,
191 const QString &username,
192 const QString &password,
193 bool savePassword,
194 const QString &site)
195 {
196 if (updateExistingServer(saveName, serv, port, username, password, savePassword, site))
197 return;
198
199 int index = getValue("totalServers", "server", "server_details").toInt() + 1;
200
201 setValue(saveName, QString("saveName%1").arg(index), "server", "server_details");
202 setValue(serv, QString("server%1").arg(index), "server", "server_details");
203 setValue(port, QString("port%1").arg(index), "server", "server_details");
204 setValue(username, QString("username%1").arg(index), "server", "server_details");
205 setValue(savePassword, QString("savePassword%1").arg(index), "server", "server_details");
206 setValue(index, "totalServers", "server", "server_details");
207 setValue(password, QString("password%1").arg(index), "server", "server_details");
208 setValue(site, QString("site%1").arg(index), "server", "server_details");
209 }
210
removeServer(QString servAddr)211 void ServersSettings::removeServer(QString servAddr)
212 {
213 int size = getValue("totalServers", "server", "server_details").toInt() + 1;
214
215 for (int i = 0; i < size; i++) {
216 if (servAddr == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
217 deleteValue(QString("server%1").arg(i), "server", "server_details");
218 deleteValue(QString("port%1").arg(i), "server", "server_details");
219 deleteValue(QString("username%1").arg(i), "server", "server_details");
220 deleteValue(QString("savePassword%1").arg(i), "server", "server_details");
221 deleteValue(QString("password%1").arg(i), "server", "server_details");
222 deleteValue(QString("saveName%1").arg(i), "server", "server_details");
223 deleteValue(QString("site%1").arg(i), "server", "server_details");
224 return;
225 }
226 }
227 }
228
229 /**
230 * Will only update fields with new values, ignores empty values
231 */
updateExistingServerWithoutLoss(QString saveName,QString serv,QString port,QString site)232 bool ServersSettings::updateExistingServerWithoutLoss(QString saveName, QString serv, QString port, QString site)
233 {
234 int size = getValue("totalServers", "server", "server_details").toInt() + 1;
235
236 for (int i = 0; i < size; i++) {
237 if (serv == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
238 if (!port.isEmpty()) {
239 setValue(port, QString("port%1").arg(i), "server", "server_details");
240 }
241
242 if (!site.isEmpty()) {
243 setValue(site, QString("site%1").arg(i), "server", "server_details");
244 }
245
246 setValue(saveName, QString("saveName%1").arg(i), "server", "server_details");
247
248 return true;
249 }
250 }
251 return false;
252 }
253
updateExistingServer(QString saveName,QString serv,QString port,QString username,QString password,bool savePassword,QString site)254 bool ServersSettings::updateExistingServer(QString saveName,
255 QString serv,
256 QString port,
257 QString username,
258 QString password,
259 bool savePassword,
260 QString site)
261 {
262 int size = getValue("totalServers", "server", "server_details").toInt() + 1;
263
264 for (int i = 0; i < size; i++) {
265 if (serv == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
266 setValue(port, QString("port%1").arg(i), "server", "server_details");
267 if (!username.isEmpty()) {
268 setValue(username, QString("username%1").arg(i), "server", "server_details");
269 }
270
271 if (savePassword && !password.isEmpty()) {
272 setValue(password, QString("password%1").arg(i), "server", "server_details");
273 } else {
274 setValue(QString(), QString("password%1").arg(i), "server", "server_details");
275 }
276
277 if (!site.isEmpty()) {
278 setValue(site, QString("site%1").arg(i), "server", "server_details");
279 }
280
281 setValue(savePassword, QString("savePassword%1").arg(i), "server", "server_details");
282 setValue(saveName, QString("saveName%1").arg(i), "server", "server_details");
283
284 return true;
285 }
286 }
287 return false;
288 }
289