mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-10 00:04:48 -07:00
Server Connect Remade (#2452)
* Save multiple server configurations * Each server has its own password/port storage Close #2452
This commit is contained in:
parent
37b43f9916
commit
4cfcca33db
9 changed files with 280 additions and 58 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,8 +11,9 @@ class ServersSettings : public SettingsManager
|
|||
|
||||
public:
|
||||
int getPreviousHostLogin();
|
||||
int getPrevioushostindex(const QString &);
|
||||
QStringList getPreviousHostList();
|
||||
int getPrevioushostindex();
|
||||
QString getPrevioushostName();
|
||||
QString getHostname(QString defaultHost = "");
|
||||
QString getPort(QString defaultPort = "");
|
||||
QString getPlayerName(QString defaultName = "");
|
||||
|
|
@ -20,10 +21,12 @@ public:
|
|||
QString getFPPort(QString defaultPort = "");
|
||||
QString getFPPlayerName(QString defaultName = "");
|
||||
QString getPassword();
|
||||
QString getSaveName(QString defaultname = "");
|
||||
int getSavePassword();
|
||||
int getAutoConnect();
|
||||
|
||||
void setPreviousHostLogin(int previous);
|
||||
void setPrevioushostName(const QString &);
|
||||
void setPreviousHostList(QStringList list);
|
||||
void setPrevioushostindex(int index);
|
||||
void setHostName(QString hostname);
|
||||
|
|
@ -35,6 +38,8 @@ public:
|
|||
void setFPHostName(QString hostname);
|
||||
void setFPPort(QString port);
|
||||
void setFPPlayerName(QString playerName);
|
||||
void addNewServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword);
|
||||
bool updateExistingServer(QString saveName, QString serv, QString port, QString username, QString password, bool savePassword);
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class SettingsManager : public QObject
|
|||
Q_OBJECT
|
||||
public:
|
||||
SettingsManager(QString settingPath, QObject *parent = 0);
|
||||
QVariant getValue(QString name, QString group = "", QString subGroup = "");
|
||||
|
||||
signals:
|
||||
|
||||
|
|
@ -18,8 +19,7 @@ public slots:
|
|||
|
||||
protected:
|
||||
QSettings settings;
|
||||
QVariant getValue(QString name, QString group = "", QString subGroup = "" );
|
||||
void setValue(QVariant value, QString name, QString group = "", QString subGroup = "" );
|
||||
void setValue(QVariant value, QString name, QString group = "", QString subGroup = "");
|
||||
};
|
||||
|
||||
#endif // SETTINGSMANAGER_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue