Server List from JSON (#3165)

This commit is contained in:
Zach H 2018-04-09 22:38:21 -04:00 committed by GitHub
parent 0c10b66a2d
commit 61e509585f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 376 additions and 161 deletions

View file

@ -1,5 +1,6 @@
#include "serverssettings.h"
#include <QDebug>
#include <utility>
ServersSettings::ServersSettings(QString settingPath, QObject *parent)
: SettingsManager(settingPath + "servers.ini", parent)
@ -36,7 +37,7 @@ QString ServersSettings::getSaveName(QString defaultname)
{
int index = getPrevioushostindex(getPrevioushostName());
QVariant saveName = getValue(QString("saveName%1").arg(index), "server", "server_details");
return saveName == QVariant() ? defaultname : saveName.toString();
return saveName == QVariant() ? std::move(defaultname) : saveName.toString();
}
QString ServersSettings::getPrevioushostName()
@ -64,7 +65,7 @@ QString ServersSettings::getHostname(QString defaultHost)
{
int index = getPrevioushostindex(getPrevioushostName());
QVariant hostname = getValue(QString("server%1").arg(index), "server", "server_details");
return hostname == QVariant() ? defaultHost : hostname.toString();
return hostname == QVariant() ? std::move(defaultHost) : hostname.toString();
}
void ServersSettings::setPort(QString port)
@ -77,7 +78,7 @@ QString ServersSettings::getPort(QString defaultPort)
int index = getPrevioushostindex(getPrevioushostName());
QVariant port = getValue(QString("port%1").arg(index), "server", "server_details");
qDebug() << "getPort() index = " << index << " port.val = " << port.toString();
return port == QVariant() ? defaultPort : port.toString();
return port == QVariant() ? std::move(defaultPort) : port.toString();
}
void ServersSettings::setPlayerName(QString playerName)
@ -90,7 +91,7 @@ QString ServersSettings::getPlayerName(QString defaultName)
int index = getPrevioushostindex(getPrevioushostName());
QVariant name = getValue(QString("username%1").arg(index), "server", "server_details");
qDebug() << "getPlayerName() index = " << index << " name.val = " << name.toString();
return name == QVariant() ? defaultName : name.toString();
return name == QVariant() ? std::move(defaultName) : name.toString();
}
QString ServersSettings::getPassword()
@ -139,7 +140,7 @@ void ServersSettings::setFPHostName(QString hostname)
QString ServersSettings::getFPHostname(QString defaultHost)
{
QVariant hostname = getValue("fphostname", "server");
return hostname == QVariant() ? defaultHost : hostname.toString();
return hostname == QVariant() ? std::move(defaultHost) : hostname.toString();
}
void ServersSettings::setFPPort(QString port)
@ -150,7 +151,7 @@ void ServersSettings::setFPPort(QString port)
QString ServersSettings::getFPPort(QString defaultPort)
{
QVariant port = getValue("fpport", "server");
return port == QVariant() ? defaultPort : port.toString();
return port == QVariant() ? std::move(defaultPort) : port.toString();
}
void ServersSettings::setFPPlayerName(QString playerName)
@ -161,7 +162,7 @@ void ServersSettings::setFPPlayerName(QString playerName)
QString ServersSettings::getFPPlayerName(QString defaultName)
{
QVariant name = getValue("fpplayername", "server");
return name == QVariant() ? defaultName : name.toString();
return name == QVariant() ? std::move(defaultName) : name.toString();
}
void ServersSettings::setClearDebugLogStatus(bool abIsChecked)
@ -175,11 +176,11 @@ bool ServersSettings::getClearDebugLogStatus(bool abDefaultValue)
return cbFlushLog == QVariant() ? abDefaultValue : cbFlushLog.toBool();
}
void ServersSettings::addNewServer(QString saveName,
QString serv,
QString port,
QString username,
QString password,
void ServersSettings::addNewServer(const QString &saveName,
const QString &serv,
const QString &port,
const QString &username,
const QString &password,
bool savePassword)
{
if (updateExistingServer(saveName, serv, port, username, password, savePassword))
@ -196,12 +197,12 @@ void ServersSettings::addNewServer(QString saveName,
setValue(password, QString("password%1").arg(index), "server", "server_details");
}
void ServersSettings::removeServer(QString saveName)
void ServersSettings::removeServer(QString servAddr)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
for (int i = 0; i < size; i++) {
if (saveName == getValue(QString("saveName%1").arg(i), "server", "server_details").toString()) {
if (servAddr == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
deleteValue(QString("server%1").arg(i), "server", "server_details");
deleteValue(QString("port%1").arg(i), "server", "server_details");
deleteValue(QString("username%1").arg(i), "server", "server_details");
@ -213,6 +214,44 @@ void ServersSettings::removeServer(QString saveName)
}
}
/**
* Will only update fields with new values, ignores empty values
*/
bool ServersSettings::updateExistingServerWithoutLoss(QString saveName,
QString serv,
QString port,
QString username,
QString password,
bool savePassword)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
for (int i = 0; i < size; i++) {
if (serv == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
if (!port.isEmpty()) {
setValue(port, QString("port%1").arg(i), "server", "server_details");
}
if (!username.isEmpty()) {
setValue(username, QString("username%1").arg(i), "server", "server_details");
}
if (savePassword && !password.isEmpty()) {
setValue(password, QString("password%1").arg(i), "server", "server_details");
} else {
setValue(QString(), QString("password%1").arg(i), "server", "server_details");
}
setValue(savePassword, QString("savePassword%1").arg(i), "server", "server_details");
setValue(saveName, QString("saveName%1").arg(i), "server", "server_details");
return true;
}
}
return false;
}
bool ServersSettings::updateExistingServer(QString saveName,
QString serv,
QString port,
@ -220,17 +259,6 @@ bool ServersSettings::updateExistingServer(QString saveName,
QString password,
bool savePassword)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
for (int i = 0; i < size; i++) {
if (saveName == getValue(QString("saveName%1").arg(i), "server", "server_details").toString()) {
setValue(serv, QString("server%1").arg(i), "server", "server_details");
setValue(port, QString("port%1").arg(i), "server", "server_details");
setValue(username, QString("username%1").arg(i), "server", "server_details");
setValue(savePassword, QString("savePassword%1").arg(i), "server", "server_details");
setValue(password, QString("password%1").arg(i), "server", "server_details");
return true;
}
}
return false;
return updateExistingServerWithoutLoss(std::move(saveName), std::move(serv), std::move(port), std::move(username),
std::move(password), savePassword);
}