Server Connect Remade (#2452)

* Save multiple server configurations
* Each server has its own password/port storage

Close #2452
This commit is contained in:
Zach H 2017-03-14 17:51:51 -04:00 committed by Gavin Bisesi
parent 37b43f9916
commit 4cfcca33db
9 changed files with 280 additions and 58 deletions

View file

@ -1,4 +1,5 @@
#include "serverssettings.h"
#include <QDebug>
ServersSettings::ServersSettings(QString settingPath, QObject *parent)
: SettingsManager(settingPath+"servers.ini", parent)
@ -26,14 +27,32 @@ QStringList ServersSettings::getPreviousHostList()
return getValue("previoushosts", "server").toStringList();
}
void ServersSettings::setPrevioushostindex(int index)
void ServersSettings::setPrevioushostName(const QString &name)
{
setValue(index, "previoushostindex", "server");
setValue(name, "previoushostName", "server");
}
int ServersSettings::getPrevioushostindex()
QString ServersSettings::getSaveName(QString defaultname)
{
return getValue("previoushostindex", "server").toInt();
int index = getPrevioushostindex(getPrevioushostName());
QVariant saveName = getValue(QString("saveName%1").arg(index), "server", "server_details");
return saveName == QVariant() ? defaultname : saveName.toString();
}
QString ServersSettings::getPrevioushostName()
{
return getValue("previoushostName", "server").toString();
}
int ServersSettings::getPrevioushostindex(const QString &saveName)
{
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())
return i;
return -1;
}
void ServersSettings::setHostName(QString hostname)
@ -43,7 +62,8 @@ void ServersSettings::setHostName(QString hostname)
QString ServersSettings::getHostname(QString defaultHost)
{
QVariant hostname = getValue("hostname","server");
int index = getPrevioushostindex(getPrevioushostName());
QVariant hostname = getValue(QString("server%1").arg(index), "server", "server_details");
return hostname == QVariant() ? defaultHost : hostname.toString();
}
@ -54,7 +74,9 @@ void ServersSettings::setPort(QString port)
QString ServersSettings::getPort(QString defaultPort)
{
QVariant port = getValue("port","server");
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();
}
@ -65,7 +87,9 @@ void ServersSettings::setPlayerName(QString playerName)
QString ServersSettings::getPlayerName(QString defaultName)
{
QVariant name = getValue("playername", "server");
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();
}
@ -76,7 +100,8 @@ void ServersSettings::setPassword(QString password)
QString ServersSettings::getPassword()
{
return getValue("password", "server").toString();
int index = getPrevioushostindex(getPrevioushostName());
return getValue(QString("password%1").arg(index), "server", "server_details").toString();
}
void ServersSettings::setSavePassword(int save)
@ -86,7 +111,8 @@ void ServersSettings::setSavePassword(int save)
int ServersSettings::getSavePassword()
{
QVariant save = getValue("save_password", "server");
int index = getPrevioushostindex(getPrevioushostName());
QVariant save = getValue(QString("savePassword%1").arg(index), "server", "server_details");
return save == QVariant() ? 1 : save.toInt();
}
@ -133,3 +159,39 @@ QString ServersSettings::getFPPlayerName(QString defaultName)
QVariant name = getValue("fpplayername", "server");
return name == QVariant() ? defaultName : name.toString();
}
void ServersSettings::addNewServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword)
{
if (updateExistingServer(saveName, serv, port, username, password, savePassword))
return;
int index = getValue("totalServers", "server", "server_details").toInt() + 1;
setValue(saveName, QString("saveName%1").arg(index), "server", "server_details");
setValue(serv, QString("server%1").arg(index), "server", "server_details");
setValue(port, QString("port%1").arg(index), "server", "server_details");
setValue(username, QString("username%1").arg(index), "server", "server_details");
setValue(password, QString("password%1").arg(index), "server", "server_details");
setValue(savePassword, QString("savePassword%1").arg(index), "server", "server_details");
setValue(index, "totalServers", "server", "server_details");
}
bool ServersSettings::updateExistingServer(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 (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(password, QString("password%1").arg(i), "server", "server_details");
setValue(savePassword, QString("savePassword%1").arg(i), "server", "server_details");
return true;
}
}
return false;
}