server site added to connect window (#3190)

This commit is contained in:
David Szabo 2018-04-11 01:05:13 +02:00 committed by Zach H
parent 034e79dd36
commit cc2a0fa0d0
7 changed files with 80 additions and 23 deletions

View file

@ -38,33 +38,32 @@ DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent)
newHostButton = new QRadioButton(tr("New Host"), this); newHostButton = new QRadioButton(tr("New Host"), this);
saveLabel = new QLabel(tr("Name:")); saveLabel = new QLabel(tr("Name:"));
saveEdit = new QLineEdit(settingsCache->servers().getSaveName()); saveEdit = new QLineEdit;
saveLabel->setBuddy(saveEdit); saveLabel->setBuddy(saveEdit);
hostLabel = new QLabel(tr("&Host:")); hostLabel = new QLabel(tr("&Host:"));
hostEdit = new QLineEdit(settingsCache->servers().getHostname()); hostEdit = new QLineEdit;
hostLabel->setBuddy(hostEdit); hostLabel->setBuddy(hostEdit);
portLabel = new QLabel(tr("&Port:")); portLabel = new QLabel(tr("&Port:"));
portEdit = new QLineEdit(settingsCache->servers().getPort("4747")); portEdit = new QLineEdit;
portLabel->setBuddy(portEdit); portLabel->setBuddy(portEdit);
playernameLabel = new QLabel(tr("Player &name:")); playernameLabel = new QLabel(tr("Player &name:"));
playernameEdit = new QLineEdit(settingsCache->servers().getPlayerName("Player")); playernameEdit = new QLineEdit;
playernameLabel->setBuddy(playernameEdit); playernameLabel->setBuddy(playernameEdit);
passwordLabel = new QLabel(tr("P&assword:")); passwordLabel = new QLabel(tr("P&assword:"));
passwordEdit = new QLineEdit(settingsCache->servers().getPassword()); passwordEdit = new QLineEdit;
passwordLabel->setBuddy(passwordEdit); passwordLabel->setBuddy(passwordEdit);
passwordEdit->setEchoMode(QLineEdit::Password); passwordEdit->setEchoMode(QLineEdit::Password);
savePasswordCheckBox = new QCheckBox(tr("&Save password")); savePasswordCheckBox = new QCheckBox(tr("&Save password"));
savePasswordCheckBox->setChecked(settingsCache->servers().getSavePassword());
autoConnectCheckBox = new QCheckBox(tr("A&uto connect")); autoConnectCheckBox = new QCheckBox(tr("A&uto connect"));
autoConnectCheckBox->setToolTip(tr("Automatically connect to the most recent login when Cockatrice opens")); autoConnectCheckBox->setToolTip(tr("Automatically connect to the most recent login when Cockatrice opens"));
if (savePasswordCheckBox->isChecked()) { if (settingsCache->servers().getSavePassword()) {
autoConnectCheckBox->setChecked(static_cast<bool>(settingsCache->servers().getAutoConnect())); autoConnectCheckBox->setChecked(static_cast<bool>(settingsCache->servers().getAutoConnect()));
autoConnectCheckBox->setEnabled(true); autoConnectCheckBox->setEnabled(true);
} else { } else {
@ -75,6 +74,16 @@ DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent)
connect(savePasswordCheckBox, SIGNAL(stateChanged(int)), this, SLOT(passwordSaved(int))); connect(savePasswordCheckBox, SIGNAL(stateChanged(int)), this, SLOT(passwordSaved(int)));
serverIssuesLabel =
new QLabel(tr("If you have any trouble connecting or registering then contact the server staff for help!"));
serverIssuesLabel->setWordWrap(true);
serverContactLink = new QLabel;
serverContactLink->setTextFormat(Qt::RichText);
serverContactLink->setTextInteractionFlags(Qt::TextBrowserInteraction);
serverContactLink->setOpenExternalLinks(true);
updateDisplayInfo(previousHosts->currentText());
btnForgotPassword = new QPushButton(tr("Forgot password")); btnForgotPassword = new QPushButton(tr("Forgot password"));
connect(btnForgotPassword, SIGNAL(released()), this, SLOT(actForgotPassword())); connect(btnForgotPassword, SIGNAL(released()), this, SLOT(actForgotPassword()));
@ -110,6 +119,10 @@ DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent)
restrictionsGroupBox = new QGroupBox(tr("Server")); restrictionsGroupBox = new QGroupBox(tr("Server"));
restrictionsGroupBox->setLayout(connectionLayout); restrictionsGroupBox->setLayout(connectionLayout);
serverInfoLayout = new QGridLayout;
serverInfoLayout->addWidget(serverIssuesLabel, 0, 0);
serverInfoLayout->addWidget(serverContactLink, 1, 0);
loginLayout = new QGridLayout; loginLayout = new QGridLayout;
loginLayout->addWidget(playernameLabel, 0, 0); loginLayout->addWidget(playernameLabel, 0, 0);
loginLayout->addWidget(playernameEdit, 0, 1); loginLayout->addWidget(playernameEdit, 0, 1);
@ -120,13 +133,17 @@ DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent)
loginGroupBox = new QGroupBox(tr("Login")); loginGroupBox = new QGroupBox(tr("Login"));
loginGroupBox->setLayout(loginLayout); loginGroupBox->setLayout(loginLayout);
serverInfoGroupBox = new QGroupBox(tr("Server info"));
serverInfoGroupBox->setLayout(serverInfoLayout);
btnGroupBox = new QGroupBox(tr("")); btnGroupBox = new QGroupBox(tr(""));
btnGroupBox->setLayout(buttons); btnGroupBox->setLayout(buttons);
grid = new QGridLayout; grid = new QGridLayout;
grid->addWidget(restrictionsGroupBox, 0, 0); grid->addWidget(restrictionsGroupBox, 0, 0);
grid->addWidget(loginGroupBox, 1, 0); grid->addWidget(loginGroupBox, 1, 0);
grid->addWidget(btnGroupBox, 2, 0); grid->addWidget(serverInfoGroupBox, 2, 0);
grid->addWidget(btnGroupBox, 3, 0);
mainLayout = new QVBoxLayout; mainLayout = new QVBoxLayout;
mainLayout->addLayout(grid); mainLayout->addLayout(grid);
@ -240,6 +257,13 @@ void DlgConnect::updateDisplayInfo(const QString &saveName)
if (savePasswordStatus) { if (savePasswordStatus) {
passwordEdit->setText(data.at(4)); passwordEdit->setText(data.at(4));
} }
if (!data.at(6).isEmpty()) {
QString formattedLink = "<a href=\"" + data.at(6) + "\">" + data.at(0) + "</a>";
serverContactLink->setText(formattedLink);
} else {
serverContactLink->setText("");
}
} }
void DlgConnect::newHostSelected(bool state) void DlgConnect::newHostSelected(bool state)

View file

@ -61,11 +61,11 @@ private slots:
void downloadThePublicServers(); void downloadThePublicServers();
private: private:
QGridLayout *newHostLayout, *connectionLayout, *buttons, *loginLayout, *grid; QGridLayout *newHostLayout, *connectionLayout, *buttons, *loginLayout, *serverInfoLayout, *grid;
QHBoxLayout *newHolderLayout; QHBoxLayout *newHolderLayout;
QGroupBox *loginGroupBox, *btnGroupBox, *restrictionsGroupBox; QGroupBox *loginGroupBox, *serverInfoGroupBox, *btnGroupBox, *restrictionsGroupBox;
QVBoxLayout *mainLayout; QVBoxLayout *mainLayout;
QLabel *hostLabel, *portLabel, *playernameLabel, *passwordLabel, *saveLabel; QLabel *hostLabel, *portLabel, *playernameLabel, *passwordLabel, *saveLabel, *serverIssuesLabel, *serverContactLink;
QLineEdit *hostEdit, *portEdit, *playernameEdit, *passwordEdit, *saveEdit; QLineEdit *hostEdit, *portEdit, *playernameEdit, *passwordEdit, *saveEdit;
QCheckBox *savePasswordCheckBox, *autoConnectCheckBox; QCheckBox *savePasswordCheckBox, *autoConnectCheckBox;
QComboBox *previousHosts; QComboBox *previousHosts;

View file

@ -72,6 +72,7 @@ void HandlePublicServers::updateServerINISettings(QMap<QString, QVariant> jsonMa
QString serverName = serverMap["name"].toString(); QString serverName = serverMap["name"].toString();
QString serverPort = serverMap["port"].toString(); QString serverPort = serverMap["port"].toString();
QString serverSite = serverMap["site"].toString();
bool serverFound = false; bool serverFound = false;
for (const auto &iter : savedHostList) { for (const auto &iter : savedHostList) {
@ -83,7 +84,7 @@ void HandlePublicServers::updateServerINISettings(QMap<QString, QVariant> jsonMa
} }
if (serverFound) { if (serverFound) {
settingsCache->servers().updateExistingServerWithoutLoss(serverName, serverAddress, serverPort); settingsCache->servers().updateExistingServerWithoutLoss(serverName, serverAddress, serverPort, serverSite);
} else { } else {
settingsCache->servers().addNewServer(serverName, serverAddress, serverPort, "", "", false); settingsCache->servers().addNewServer(serverName, serverAddress, serverPort, "", "", false);
} }

View file

@ -40,6 +40,13 @@ QString ServersSettings::getSaveName(QString defaultname)
return saveName == QVariant() ? std::move(defaultname) : saveName.toString(); return saveName == QVariant() ? std::move(defaultname) : saveName.toString();
} }
QString ServersSettings::getSite(QString defaultSite)
{
int index = getPrevioushostindex(getPrevioushostName());
QVariant site = getValue(QString("site%1").arg(index), "server", "server_details");
return site == QVariant() ? std::move(defaultSite) : site.toString();
}
QString ServersSettings::getPrevioushostName() QString ServersSettings::getPrevioushostName()
{ {
return getValue("previoushostName", "server").toString(); return getValue("previoushostName", "server").toString();
@ -181,9 +188,10 @@ void ServersSettings::addNewServer(const QString &saveName,
const QString &port, const QString &port,
const QString &username, const QString &username,
const QString &password, const QString &password,
bool savePassword) bool savePassword,
const QString &site)
{ {
if (updateExistingServer(saveName, serv, port, username, password, savePassword)) if (updateExistingServer(saveName, serv, port, username, password, savePassword, site))
return; return;
int index = getValue("totalServers", "server", "server_details").toInt() + 1; int index = getValue("totalServers", "server", "server_details").toInt() + 1;
@ -195,6 +203,7 @@ void ServersSettings::addNewServer(const QString &saveName,
setValue(savePassword, QString("savePassword%1").arg(index), "server", "server_details"); setValue(savePassword, QString("savePassword%1").arg(index), "server", "server_details");
setValue(index, "totalServers", "server", "server_details"); setValue(index, "totalServers", "server", "server_details");
setValue(password, QString("password%1").arg(index), "server", "server_details"); setValue(password, QString("password%1").arg(index), "server", "server_details");
setValue(site, QString("site%1").arg(index), "server", "server_details");
} }
void ServersSettings::removeServer(QString servAddr) void ServersSettings::removeServer(QString servAddr)
@ -209,6 +218,7 @@ void ServersSettings::removeServer(QString servAddr)
deleteValue(QString("savePassword%1").arg(i), "server", "server_details"); deleteValue(QString("savePassword%1").arg(i), "server", "server_details");
deleteValue(QString("password%1").arg(i), "server", "server_details"); deleteValue(QString("password%1").arg(i), "server", "server_details");
deleteValue(QString("saveName%1").arg(i), "server", "server_details"); deleteValue(QString("saveName%1").arg(i), "server", "server_details");
deleteValue(QString("site%1").arg(i), "server", "server_details");
return; return;
} }
} }
@ -220,6 +230,7 @@ void ServersSettings::removeServer(QString servAddr)
bool ServersSettings::updateExistingServerWithoutLoss(QString saveName, bool ServersSettings::updateExistingServerWithoutLoss(QString saveName,
QString serv, QString serv,
QString port, QString port,
QString site,
QString username, QString username,
QString password, QString password,
bool savePassword) bool savePassword)
@ -243,6 +254,10 @@ bool ServersSettings::updateExistingServerWithoutLoss(QString saveName,
setValue(QString(), QString("password%1").arg(i), "server", "server_details"); setValue(QString(), QString("password%1").arg(i), "server", "server_details");
} }
if (!site.isEmpty()) {
setValue(site, QString("site%1").arg(i), "server", "server_details");
}
setValue(savePassword, QString("savePassword%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"); setValue(saveName, QString("saveName%1").arg(i), "server", "server_details");
@ -257,8 +272,9 @@ bool ServersSettings::updateExistingServer(QString saveName,
QString port, QString port,
QString username, QString username,
QString password, QString password,
bool savePassword) bool savePassword,
QString site)
{ {
return updateExistingServerWithoutLoss(std::move(saveName), std::move(serv), std::move(port), std::move(username), return updateExistingServerWithoutLoss(std::move(saveName), std::move(serv), std::move(port), std::move(site),
std::move(password), savePassword); std::move(username), std::move(password), savePassword);
} }

View file

@ -22,6 +22,7 @@ public:
QString getFPPlayerName(QString defaultName = ""); QString getFPPlayerName(QString defaultName = "");
QString getPassword(); QString getPassword();
QString getSaveName(QString defaultname = ""); QString getSaveName(QString defaultname = "");
QString getSite(QString defaultName = "");
bool getSavePassword(); bool getSavePassword();
int getAutoConnect(); int getAutoConnect();
@ -32,6 +33,7 @@ public:
void setPort(QString port); void setPort(QString port);
void setPlayerName(QString playerName); void setPlayerName(QString playerName);
void setAutoConnect(int autoconnect); void setAutoConnect(int autoconnect);
void setSite(QString site);
void setFPHostName(QString hostname); void setFPHostName(QString hostname);
void setPassword(QString password); void setPassword(QString password);
void setFPPort(QString port); void setFPPort(QString port);
@ -42,18 +44,21 @@ public:
const QString &port, const QString &port,
const QString &username, const QString &username,
const QString &password, const QString &password,
bool savePassword); bool savePassword,
const QString &site = QString());
void removeServer(QString servAddr); void removeServer(QString servAddr);
bool updateExistingServer(QString saveName, bool updateExistingServer(QString saveName,
QString serv, QString serv,
QString port, QString port,
QString username, QString username,
QString password, QString password,
bool savePassword); bool savePassword,
QString site = QString());
bool updateExistingServerWithoutLoss(QString saveName, bool updateExistingServerWithoutLoss(QString saveName,
QString serv = QString(), QString serv = QString(),
QString port = QString(), QString port = QString(),
QString site = QString(),
QString username = QString(), QString username = QString(),
QString password = QString(), QString password = QString(),
bool savePassword = true); bool savePassword = true);

View file

@ -10,9 +10,10 @@ UserConnection_Information::UserConnection_Information(QString _saveName,
QString _portNum, QString _portNum,
QString _userName, QString _userName,
QString _pass, QString _pass,
bool _savePass) bool _savePass,
QString _site)
: saveName(std::move(_saveName)), server(std::move(_serverName)), port(std::move(_portNum)), : saveName(std::move(_saveName)), server(std::move(_serverName)), port(std::move(_portNum)),
username(std::move(_userName)), password(std::move(_pass)), savePassword(_savePass) username(std::move(_userName)), password(std::move(_pass)), savePassword(_savePass), site(std::move(_site))
{ {
} }
@ -35,8 +36,10 @@ QMap<QString, std::pair<QString, UserConnection_Information>> UserConnection_Inf
settingsCache->servers().getValue(QString("password%1").arg(i), "server", "server_details").toString(); settingsCache->servers().getValue(QString("password%1").arg(i), "server", "server_details").toString();
bool savePass = bool savePass =
settingsCache->servers().getValue(QString("savePassword%1").arg(i), "server", "server_details").toBool(); settingsCache->servers().getValue(QString("savePassword%1").arg(i), "server", "server_details").toBool();
QString site =
settingsCache->servers().getValue(QString("site%1").arg(i), "server", "server_details").toString();
UserConnection_Information userInfo(saveName, serverName, portNum, userName, pass, savePass); UserConnection_Information userInfo(saveName, serverName, portNum, userName, pass, savePass, site);
serverList.insert(saveName, std::make_pair(serverName, userInfo)); serverList.insert(saveName, std::make_pair(serverName, userInfo));
} }
@ -65,6 +68,8 @@ QStringList UserConnection_Information::getServerInfo(const QString &find)
settingsCache->servers().getValue(QString("password%1").arg(i), "server", "server_details").toString(); settingsCache->servers().getValue(QString("password%1").arg(i), "server", "server_details").toString();
bool savePass = bool savePass =
settingsCache->servers().getValue(QString("savePassword%1").arg(i), "server", "server_details").toBool(); settingsCache->servers().getValue(QString("savePassword%1").arg(i), "server", "server_details").toBool();
QString site =
settingsCache->servers().getValue(QString("site%1").arg(i), "server", "server_details").toString();
server.append(saveName); server.append(saveName);
server.append(serverName); server.append(serverName);
@ -72,6 +77,7 @@ QStringList UserConnection_Information::getServerInfo(const QString &find)
server.append(userName); server.append(userName);
server.append(pass); server.append(pass);
server.append(savePass ? "1" : "0"); server.append(savePass ? "1" : "0");
server.append(site);
break; break;
} }

View file

@ -16,11 +16,12 @@ private:
QString username; QString username;
QString password; QString password;
bool savePassword; bool savePassword;
QString site;
bool isCustom; bool isCustom;
public: public:
UserConnection_Information(); UserConnection_Information();
UserConnection_Information(QString, QString, QString, QString, QString, bool); UserConnection_Information(QString, QString, QString, QString, QString, bool, QString);
QString getSaveName() const QString getSaveName() const
{ {
return saveName; return saveName;
@ -45,6 +46,10 @@ public:
{ {
return savePassword; return savePassword;
} }
QString getSite() const
{
return site;
}
QMap<QString, std::pair<QString, UserConnection_Information>> getServerInfo(); QMap<QString, std::pair<QString, UserConnection_Information>> getServerInfo();
QStringList getServerInfo(const QString &find); QStringList getServerInfo(const QString &find);
}; };