add more info to dialogs (#4293)

* add more info to dialogs

adds descriptive strings to the register, password reset request,
password reset challenge request, password reset token dialogs
adds tip to set manager to use ctrl a to select all sets
change sizes in set manager
moves default server info to settings instead of having it hardcoded in
each dialog

* make sets manager smaller

* clangify

* cleanup
This commit is contained in:
ebbit1q 2021-04-02 05:34:25 +02:00 committed by GitHub
parent 1b4543aa11
commit 8e954b10e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 170 additions and 158 deletions

View file

@ -510,6 +510,7 @@ LoadStatus CardDatabase::loadFromFile(const QString &fileName)
LoadStatus CardDatabase::loadCardDatabase(const QString &path)
{
auto startTime = QTime::currentTime();
LoadStatus tempLoadStatus = NotLoaded;
if (!path.isEmpty()) {
loadFromFileMutex->lock();
@ -517,8 +518,9 @@ LoadStatus CardDatabase::loadCardDatabase(const QString &path)
loadFromFileMutex->unlock();
}
int msecs = startTime.msecsTo(QTime::currentTime());
qDebug() << "[CardDatabase] loadCardDatabase(): Path =" << path << "Status =" << tempLoadStatus
<< "Cards =" << cards.size() << "Sets=" << sets.size();
<< "Cards =" << cards.size() << "Sets =" << sets.size() << QString("%1ms").arg(msecs);
return tempLoadStatus;
}

View file

@ -160,14 +160,17 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml)
// NOTE: attributes but be read before readElementText()
QXmlStreamAttributes attrs = xml.attributes();
QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements);
CardInfoPerSet setInfo(internalAddSet(setName));
for (QXmlStreamAttribute attr : attrs) {
QString attrName = attr.name().toString();
if (attrName == "picURL")
attrName = "picurl";
setInfo.setProperty(attrName, attr.value().toString());
auto set = internalAddSet(setName);
if (set->getEnabled()) {
CardInfoPerSet setInfo(set);
for (QXmlStreamAttribute attr : attrs) {
QString attrName = attr.name().toString();
if (attrName == "picURL")
attrName = "picurl";
setInfo.setProperty(attrName, attr.value().toString());
}
sets.insert(setName, setInfo);
}
sets.insert(setName, setInfo);
// relatd cards
} else if (xml.name() == "related" || xml.name() == "reverse-related") {
bool attach = false;
@ -380,4 +383,4 @@ bool CockatriceXml4Parser::saveToFile(SetNameMap sets,
xml.writeEndDocument();
return true;
}
}

View file

@ -63,11 +63,12 @@ DlgConnect::DlgConnect(QWidget *parent) : QDialog(parent)
autoConnectCheckBox = new QCheckBox(tr("A&uto connect"));
autoConnectCheckBox->setToolTip(tr("Automatically connect to the most recent login when Cockatrice opens"));
if (SettingsCache::instance().servers().getSavePassword()) {
autoConnectCheckBox->setChecked(static_cast<bool>(SettingsCache::instance().servers().getAutoConnect()));
auto &servers = SettingsCache::instance().servers();
if (servers.getSavePassword()) {
autoConnectCheckBox->setChecked(servers.getAutoConnect() > 0);
autoConnectCheckBox->setEnabled(true);
} else {
SettingsCache::instance().servers().setAutoConnect(0);
servers.setAutoConnect(0);
autoConnectCheckBox->setChecked(false);
autoConnectCheckBox->setEnabled(false);
}
@ -192,9 +193,10 @@ void DlgConnect::rebuildComboBoxList(int failure)
UserConnection_Information uci;
savedHostList = uci.getServerInfo();
bool autoConnectEnabled = static_cast<bool>(SettingsCache::instance().servers().getAutoConnect());
QString previousHostName = SettingsCache::instance().servers().getPrevioushostName();
QString autoConnectSaveName = SettingsCache::instance().servers().getSaveName();
auto &servers = SettingsCache::instance().servers();
bool autoConnectEnabled = servers.getAutoConnect() > 0;
QString previousHostName = servers.getPrevioushostName();
QString autoConnectSaveName = servers.getSaveName();
int index = 0;

View file

@ -10,12 +10,13 @@
DlgEditPassword::DlgEditPassword(QWidget *parent) : QDialog(parent)
{
oldPasswordLabel = new QLabel(tr("Old password:"));
oldPasswordEdit = new QLineEdit();
if (SettingsCache::instance().servers().getSavePassword())
oldPasswordEdit->setText(SettingsCache::instance().servers().getPassword());
auto &servers = SettingsCache::instance().servers();
if (servers.getSavePassword()) {
oldPasswordEdit->setText(servers.getPassword());
}
oldPasswordLabel->setBuddy(oldPasswordEdit);
oldPasswordEdit->setEchoMode(QLineEdit::Password);
@ -59,7 +60,5 @@ void DlgEditPassword::actOk()
return;
}
// always save the password so it will be picked up by the connect dialog
SettingsCache::instance().servers().setPassword(newPasswordEdit->text());
accept();
}

View file

@ -12,14 +12,13 @@
DlgForgotPasswordChallenge::DlgForgotPasswordChallenge(QWidget *parent) : QDialog(parent)
{
QString lastfphost;
QString lastfpport;
QString lastfpplayername;
ServersSettings &servers = SettingsCache::instance().servers();
lastfphost = servers.getHostname("server.cockatrice.us");
lastfpport = servers.getPort("4747");
lastfpplayername = servers.getPlayerName("Player");
lastfphost = servers.getHostname();
lastfpport = servers.getPort();
lastfpplayername = servers.getPlayerName();
if (!servers.getFPHostname().isEmpty() && !servers.getFPPort().isEmpty() && !servers.getFPPlayerName().isEmpty()) {
lastfphost = servers.getFPHostname();
@ -34,6 +33,10 @@ DlgForgotPasswordChallenge::DlgForgotPasswordChallenge(QWidget *parent) : QDialo
reject();
}
infoLabel =
new QLabel(tr("Enter the information of the server and the account you'd like to request a new password for."));
infoLabel->setWordWrap(true);
hostLabel = new QLabel(tr("&Host:"));
hostEdit = new QLineEdit(lastfphost);
hostLabel->setBuddy(hostEdit);
@ -60,14 +63,15 @@ DlgForgotPasswordChallenge::DlgForgotPasswordChallenge(QWidget *parent) : QDialo
}
QGridLayout *grid = new QGridLayout;
grid->addWidget(hostLabel, 0, 0);
grid->addWidget(hostEdit, 0, 1);
grid->addWidget(portLabel, 1, 0);
grid->addWidget(portEdit, 1, 1);
grid->addWidget(playernameLabel, 2, 0);
grid->addWidget(playernameEdit, 2, 1);
grid->addWidget(emailLabel, 3, 0);
grid->addWidget(emailEdit, 3, 1);
grid->addWidget(infoLabel, 0, 0, 1, 2);
grid->addWidget(hostLabel, 1, 0);
grid->addWidget(hostEdit, 1, 1);
grid->addWidget(portLabel, 2, 0);
grid->addWidget(portEdit, 2, 1);
grid->addWidget(playernameLabel, 3, 0);
grid->addWidget(playernameEdit, 3, 1);
grid->addWidget(emailLabel, 4, 0);
grid->addWidget(emailEdit, 4, 1);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));

View file

@ -34,7 +34,7 @@ private slots:
void actOk();
private:
QLabel *hostLabel, *portLabel, *playernameLabel, *emailLabel;
QLabel *infoLabel, *hostLabel, *portLabel, *playernameLabel, *emailLabel;
QLineEdit *hostEdit, *portEdit, *playernameEdit, *emailEdit;
};

View file

@ -12,14 +12,13 @@
DlgForgotPasswordRequest::DlgForgotPasswordRequest(QWidget *parent) : QDialog(parent)
{
QString lastfphost;
QString lastfpport;
QString lastfpplayername;
ServersSettings &servers = SettingsCache::instance().servers();
lastfphost = servers.getHostname("server.cockatrice.us");
lastfpport = servers.getPort("4747");
lastfpplayername = servers.getPlayerName("Player");
lastfphost = servers.getHostname();
lastfpport = servers.getPort();
lastfpplayername = servers.getPlayerName();
if (!servers.getFPHostname().isEmpty() && !servers.getFPPort().isEmpty() && !servers.getFPPlayerName().isEmpty()) {
lastfphost = servers.getFPHostname();
@ -27,6 +26,9 @@ DlgForgotPasswordRequest::DlgForgotPasswordRequest(QWidget *parent) : QDialog(pa
lastfpplayername = servers.getFPPlayerName();
}
infoLabel = new QLabel(tr("Enter the information of the server you'd like to request a new password for."));
infoLabel->setWordWrap(true);
hostLabel = new QLabel(tr("&Host:"));
hostEdit = new QLineEdit(lastfphost);
hostLabel->setBuddy(hostEdit);
@ -40,12 +42,13 @@ DlgForgotPasswordRequest::DlgForgotPasswordRequest(QWidget *parent) : QDialog(pa
playernameLabel->setBuddy(playernameEdit);
QGridLayout *grid = new QGridLayout;
grid->addWidget(hostLabel, 0, 0);
grid->addWidget(hostEdit, 0, 1);
grid->addWidget(portLabel, 1, 0);
grid->addWidget(portEdit, 1, 1);
grid->addWidget(playernameLabel, 2, 0);
grid->addWidget(playernameEdit, 2, 1);
grid->addWidget(infoLabel, 0, 0, 1, 2);
grid->addWidget(hostLabel, 1, 0);
grid->addWidget(hostEdit, 1, 1);
grid->addWidget(portLabel, 2, 0);
grid->addWidget(portEdit, 2, 1);
grid->addWidget(playernameLabel, 3, 0);
grid->addWidget(playernameEdit, 3, 1);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));

View file

@ -30,7 +30,7 @@ private slots:
void actOk();
private:
QLabel *hostLabel, *portLabel, *playernameLabel;
QLabel *infoLabel, *hostLabel, *portLabel, *playernameLabel;
QLineEdit *hostEdit, *portEdit, *playernameEdit;
};

View file

@ -12,14 +12,13 @@
DlgForgotPasswordReset::DlgForgotPasswordReset(QWidget *parent) : QDialog(parent)
{
QString lastfphost;
QString lastfpport;
QString lastfpplayername;
ServersSettings &servers = SettingsCache::instance().servers();
lastfphost = servers.getHostname("server.cockatrice.us");
lastfpport = servers.getPort("4747");
lastfpplayername = servers.getPlayerName("Player");
lastfphost = servers.getHostname();
lastfpport = servers.getPort();
lastfpplayername = servers.getPlayerName();
if (!servers.getFPHostname().isEmpty() && !servers.getFPPort().isEmpty() && !servers.getFPPlayerName().isEmpty()) {
lastfphost = servers.getFPHostname();
@ -34,6 +33,9 @@ DlgForgotPasswordReset::DlgForgotPasswordReset(QWidget *parent) : QDialog(parent
reject();
}
infoLabel = new QLabel(tr("Enter the received token and the new password in order to set your new password."));
infoLabel->setWordWrap(true);
hostLabel = new QLabel(tr("&Host:"));
hostEdit = new QLineEdit(lastfphost);
hostLabel->setBuddy(hostEdit);
@ -70,18 +72,19 @@ DlgForgotPasswordReset::DlgForgotPasswordReset(QWidget *parent) : QDialog(parent
}
QGridLayout *grid = new QGridLayout;
grid->addWidget(hostLabel, 0, 0);
grid->addWidget(hostEdit, 0, 1);
grid->addWidget(portLabel, 1, 0);
grid->addWidget(portEdit, 1, 1);
grid->addWidget(playernameLabel, 2, 0);
grid->addWidget(playernameEdit, 2, 1);
grid->addWidget(tokenLabel, 3, 0);
grid->addWidget(tokenEdit, 3, 1);
grid->addWidget(newpasswordLabel, 4, 0);
grid->addWidget(newpasswordEdit, 4, 1);
grid->addWidget(newpasswordverifyLabel, 5, 0);
grid->addWidget(newpasswordverifyEdit, 5, 1);
grid->addWidget(infoLabel, 0, 0, 1, 2);
grid->addWidget(hostLabel, 1, 0);
grid->addWidget(hostEdit, 1, 1);
grid->addWidget(portLabel, 2, 0);
grid->addWidget(portEdit, 2, 1);
grid->addWidget(playernameLabel, 3, 0);
grid->addWidget(playernameEdit, 3, 1);
grid->addWidget(tokenLabel, 4, 0);
grid->addWidget(tokenEdit, 4, 1);
grid->addWidget(newpasswordLabel, 5, 0);
grid->addWidget(newpasswordEdit, 5, 1);
grid->addWidget(newpasswordverifyLabel, 6, 0);
grid->addWidget(newpasswordverifyEdit, 6, 1);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));

View file

@ -38,7 +38,8 @@ private slots:
void actOk();
private:
QLabel *hostLabel, *portLabel, *playernameLabel, *tokenLabel, *newpasswordLabel, *newpasswordverifyLabel;
QLabel *infoLabel, *hostLabel, *portLabel, *playernameLabel, *tokenLabel, *newpasswordLabel,
*newpasswordverifyLabel;
QLineEdit *hostEdit, *portEdit, *playernameEdit, *tokenEdit, *newpasswordEdit, *newpasswordverifyEdit;
};

View file

@ -84,6 +84,7 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
displayModel->setDynamicSortFilter(false);
view = new QTreeView;
view->setModel(displayModel);
view->setMinimumSize(QSize(500, 250));
view->setAlternatingRowColors(true);
view->setUniformRowHeights(true);
@ -128,16 +129,17 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
labNotes->setWordWrap(true);
labNotes->setTextInteractionFlags(Qt::TextBrowserInteraction);
labNotes->setOpenExternalLinks(true);
labNotes->setText("<b>" + tr("Deck Editor") + ":</b> " +
tr("Only cards in enabled sets will appear in the card list of the deck editor") + "<br><br>" +
"<b>" + tr("Card Art") + ":</b> " + tr("Image priority is decided in the following order") +
"<ol><li>" + tr("CUSTOM Folder") +
" (<a href='https://github.com/Cockatrice/Cockatrice/wiki/Custom-Cards-%26-Sets"
"#to-add-custom-art-for-cards-the-easiest-way-is-to-use-the-custom-folder'>" +
tr("How to use custom card art") + "</a>)</li><li>" + tr("Enabled Sets (Top to Bottom)") +
"</li><li>" + tr("Disabled Sets (Top to Bottom)") + "</li></ol>");
labNotes->setText(tr("Use ctrl+a to select all sets in the view.") + "<br><b>" + tr("Deck Editor") + ":</b> " +
tr("Only cards in enabled sets will appear in the card list of the deck editor.") + "<br><b>" +
tr("Card Art") + ":</b> " + tr("Image priority is decided in the following order:") + "<br>" +
tr("first the CUSTOM Folder (%1), then the Enabled Sets in this dialog (Top to Bottom)",
"%1 is a link to the wiki")
.arg("<a href='https://github.com/Cockatrice/Cockatrice/wiki/Custom-Cards-%26-Sets"
"#to-add-custom-art-for-cards-the-easiest-way-is-to-use-the-custom-folder'>" +
tr("How to use custom card art") + "</a>"));
QGridLayout *hintsGrid = new QGridLayout;
hintsGrid->setMargin(2);
hintsGrid->addWidget(labNotes, 0, 0);
hintsGroupBox = new QGroupBox(tr("Hints"));
hintsGroupBox->setLayout(hintsGrid);
@ -163,8 +165,8 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
connect(buttonBox, SIGNAL(rejected()), this, SLOT(actRestore()));
mainLayout = new QGridLayout;
mainLayout->addWidget(setsEditToolBar, 1, 0, 2, 1);
mainLayout->addLayout(filterBox, 0, 1, 1, 2);
mainLayout->addWidget(setsEditToolBar, 1, 0, 2, 1);
mainLayout->addWidget(view, 1, 1, 1, 2);
mainLayout->addWidget(enableAllButton, 2, 1);
mainLayout->addWidget(disableAllButton, 2, 2);
@ -184,7 +186,7 @@ WndSets::WndSets(QWidget *parent) : QMainWindow(parent)
setCentralWidget(centralWidget);
setWindowTitle(tr("Manage sets"));
resize(700, 400);
resize(800, 500);
}
WndSets::~WndSets()

View file

@ -14,20 +14,24 @@
DlgRegister::DlgRegister(QWidget *parent) : QDialog(parent)
{
ServersSettings &servers = SettingsCache::instance().servers();
infoLabel = new QLabel(tr("Enter your information and the information of the server you'd like to register to.\n"
"Your email will be used to verify your account."));
infoLabel->setWordWrap(true);
hostLabel = new QLabel(tr("&Host:"));
hostEdit = new QLineEdit(servers.getHostname("server.cockatrice.us"));
hostEdit = new QLineEdit(servers.getHostname());
hostLabel->setBuddy(hostEdit);
portLabel = new QLabel(tr("&Port:"));
portEdit = new QLineEdit(servers.getPort("4747"));
portEdit = new QLineEdit(servers.getPort());
portLabel->setBuddy(portEdit);
playernameLabel = new QLabel(tr("Player &name:"));
playernameEdit = new QLineEdit(servers.getPlayerName("Player"));
playernameEdit = new QLineEdit(servers.getPlayerName());
playernameLabel->setBuddy(playernameEdit);
passwordLabel = new QLabel(tr("P&assword:"));
passwordEdit = new QLineEdit(servers.getPassword());
passwordEdit = new QLineEdit();
passwordLabel->setBuddy(passwordEdit);
passwordEdit->setEchoMode(QLineEdit::Password);
@ -307,24 +311,25 @@ DlgRegister::DlgRegister(QWidget *parent) : QDialog(parent)
realnameLabel->setBuddy(realnameEdit);
QGridLayout *grid = new QGridLayout;
grid->addWidget(hostLabel, 0, 0);
grid->addWidget(hostEdit, 0, 1);
grid->addWidget(portLabel, 1, 0);
grid->addWidget(portEdit, 1, 1);
grid->addWidget(playernameLabel, 2, 0);
grid->addWidget(playernameEdit, 2, 1);
grid->addWidget(passwordLabel, 3, 0);
grid->addWidget(passwordEdit, 3, 1);
grid->addWidget(passwordConfirmationLabel, 4, 0);
grid->addWidget(passwordConfirmationEdit, 4, 1);
grid->addWidget(emailLabel, 5, 0);
grid->addWidget(emailEdit, 5, 1);
grid->addWidget(emailConfirmationLabel, 6, 0);
grid->addWidget(emailConfirmationEdit, 6, 1);
grid->addWidget(countryLabel, 8, 0);
grid->addWidget(countryEdit, 8, 1);
grid->addWidget(realnameLabel, 9, 0);
grid->addWidget(realnameEdit, 9, 1);
grid->addWidget(infoLabel, 0, 0, 1, 2);
grid->addWidget(hostLabel, 1, 0);
grid->addWidget(hostEdit, 1, 1);
grid->addWidget(portLabel, 2, 0);
grid->addWidget(portEdit, 2, 1);
grid->addWidget(playernameLabel, 3, 0);
grid->addWidget(playernameEdit, 3, 1);
grid->addWidget(passwordLabel, 4, 0);
grid->addWidget(passwordEdit, 4, 1);
grid->addWidget(passwordConfirmationLabel, 5, 0);
grid->addWidget(passwordConfirmationEdit, 5, 1);
grid->addWidget(emailLabel, 6, 0);
grid->addWidget(emailEdit, 6, 1);
grid->addWidget(emailConfirmationLabel, 7, 0);
grid->addWidget(emailConfirmationEdit, 7, 1);
grid->addWidget(countryLabel, 9, 0);
grid->addWidget(countryEdit, 9, 1);
grid->addWidget(realnameLabel, 10, 0);
grid->addWidget(realnameEdit, 10, 1);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));
@ -355,12 +360,5 @@ void DlgRegister::actOk()
return;
}
ServersSettings &servers = SettingsCache::instance().servers();
servers.setHostName(hostEdit->text());
servers.setPort(portEdit->text());
servers.setPlayerName(playernameEdit->text());
// always save the password so it will be picked up by the connect dialog
servers.setPassword(passwordEdit->text());
accept();
}

View file

@ -50,8 +50,8 @@ private slots:
void actOk();
private:
QLabel *hostLabel, *portLabel, *playernameLabel, *passwordLabel, *passwordConfirmationLabel, *emailLabel,
*emailConfirmationLabel, *countryLabel, *realnameLabel;
QLabel *infoLabel, *hostLabel, *portLabel, *playernameLabel, *passwordLabel, *passwordConfirmationLabel,
*emailLabel, *emailConfirmationLabel, *countryLabel, *realnameLabel;
QLineEdit *hostEdit, *portEdit, *playernameEdit, *passwordEdit, *passwordConfirmationEdit, *emailEdit,
*emailConfirmationEdit, *realnameEdit;
QComboBox *countryEdit;

View file

@ -56,20 +56,15 @@ QString ServersSettings::getPrevioushostName()
int ServersSettings::getPrevioushostindex(const QString &saveName)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
int size = getValue("totalServers", "server", "server_details").toInt();
for (int i = 0; i < size; i++)
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)
{
setValue(hostname, "hostname", "server");
}
QString ServersSettings::getHostname(QString defaultHost)
{
int index = getPrevioushostindex(getPrevioushostName());
@ -77,11 +72,6 @@ QString ServersSettings::getHostname(QString defaultHost)
return hostname == QVariant() ? std::move(defaultHost) : hostname.toString();
}
void ServersSettings::setPort(QString port)
{
setValue(port, "port", "server");
}
QString ServersSettings::getPort(QString defaultPort)
{
int index = getPrevioushostindex(getPrevioushostName());
@ -90,11 +80,6 @@ QString ServersSettings::getPort(QString defaultPort)
return port == QVariant() ? std::move(defaultPort) : port.toString();
}
void ServersSettings::setPlayerName(QString playerName)
{
setValue(playerName, "playername", "server");
}
QString ServersSettings::getPlayerName(QString defaultName)
{
int index = getPrevioushostindex(getPrevioushostName());
@ -120,16 +105,6 @@ bool ServersSettings::getSavePassword()
return save;
}
void ServersSettings::setPassword(QString password)
{
setValue(password, "password", "server");
}
void ServersSettings::setSavePassword(int save)
{
setValue(save, "save_password", "server");
}
void ServersSettings::setAutoConnect(int autoconnect)
{
setValue(autoconnect, "auto_connect", "server");
@ -210,20 +185,48 @@ void ServersSettings::addNewServer(const QString &saveName,
void ServersSettings::removeServer(QString servAddr)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
int size = getValue("totalServers", "server", "server_details").toInt();
for (int i = 0; i < size; i++) {
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");
deleteValue(QString("savePassword%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("site%1").arg(i), "server", "server_details");
return;
bool found = false;
for (int i = 0; i <= size; ++i) {
if (!found) {
// find entry and overwrite it
if (servAddr == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
found = true;
}
} else {
// move all other entries after it one back, overwriting the previous one
int previous = i - 1; // we delete only one entry
setValue(getValue(QString("server%1").arg(i), "server", "server_details"),
QString("server%1").arg(previous), "server", "server_details");
setValue(getValue(QString("port%1").arg(i), "server", "server_details"), QString("port%1").arg(previous),
"server", "server_details");
setValue(getValue(QString("username%1").arg(i), "server", "server_details"),
QString("username%1").arg(previous), "server", "server_details");
setValue(getValue(QString("savePassword%1").arg(i), "server", "server_details"),
QString("savePassword%1").arg(previous), "server", "server_details");
setValue(getValue(QString("password%1").arg(i), "server", "server_details"),
QString("password%1").arg(previous), "server", "server_details");
setValue(getValue(QString("saveName%1").arg(i), "server", "server_details"),
QString("saveName%1").arg(previous), "server", "server_details");
setValue(getValue(QString("site%1").arg(i), "server", "server_details"), QString("site%1").arg(previous),
"server", "server_details");
}
}
// if we have deleted an entry, adjust the total
if (found) {
setValue(size - 1, "totalServers", "server", "server_details");
// delete last value
deleteValue(QString("server%1").arg(size), "server", "server_details");
deleteValue(QString("port%1").arg(size), "server", "server_details");
deleteValue(QString("username%1").arg(size), "server", "server_details");
deleteValue(QString("savePassword%1").arg(size), "server", "server_details");
deleteValue(QString("password%1").arg(size), "server", "server_details");
deleteValue(QString("saveName%1").arg(size), "server", "server_details");
deleteValue(QString("site%1").arg(size), "server", "server_details");
}
}
/**
@ -231,9 +234,9 @@ void ServersSettings::removeServer(QString servAddr)
*/
bool ServersSettings::updateExistingServerWithoutLoss(QString saveName, QString serv, QString port, QString site)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
int size = getValue("totalServers", "server", "server_details").toInt();
for (int i = 0; i < size; i++) {
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");
@ -259,9 +262,9 @@ bool ServersSettings::updateExistingServer(QString saveName,
bool savePassword,
QString site)
{
int size = getValue("totalServers", "server", "server_details").toInt() + 1;
int size = getValue("totalServers", "server", "server_details").toInt();
for (int i = 0; i < size; i++) {
for (int i = 0; i <= size; ++i) {
if (serv == getValue(QString("server%1").arg(i), "server", "server_details").toString()) {
setValue(port, QString("port%1").arg(i), "server", "server_details");
if (!username.isEmpty()) {

View file

@ -4,6 +4,8 @@
#include "settingsmanager.h"
#include <QObject>
#define SERVERSETTINGS_DEFAULT_HOST "server.cockatrice.us"
#define SERVERSETTINGS_DEFAULT_PORT "4748"
class ServersSettings : public SettingsManager
{
@ -15,11 +17,11 @@ public:
int getPrevioushostindex(const QString &);
QStringList getPreviousHostList();
QString getPrevioushostName();
QString getHostname(QString defaultHost = "");
QString getPort(QString defaultPort = "");
QString getHostname(QString defaultHost = SERVERSETTINGS_DEFAULT_HOST);
QString getPort(QString defaultPort = SERVERSETTINGS_DEFAULT_PORT);
QString getPlayerName(QString defaultName = "");
QString getFPHostname(QString defaultHost = "");
QString getFPPort(QString defaultPort = "");
QString getFPHostname(QString defaultHost = SERVERSETTINGS_DEFAULT_HOST);
QString getFPPort(QString defaultPort = SERVERSETTINGS_DEFAULT_PORT);
QString getFPPlayerName(QString defaultName = "");
QString getPassword();
QString getSaveName(QString defaultname = "");
@ -30,15 +32,10 @@ public:
void setPreviousHostLogin(int previous);
void setPrevioushostName(const QString &);
void setPreviousHostList(QStringList list);
void setHostName(QString hostname);
void setPort(QString port);
void setPlayerName(QString playerName);
void setAutoConnect(int autoconnect);
void setSite(QString site);
void setFPHostName(QString hostname);
void setPassword(QString password);
void setFPPort(QString port);
void setSavePassword(int save);
void setFPPlayerName(QString playerName);
void addNewServer(const QString &saveName,
const QString &serv,

View file

@ -60,11 +60,6 @@ void SettingsCache::translateLegacySettings()
legacySetting.beginGroup("server");
servers().setPreviousHostLogin(legacySetting.value("previoushostlogin").toInt());
servers().setPreviousHostList(legacySetting.value("previoushosts").toStringList());
servers().setHostName(legacySetting.value("hostname").toString());
servers().setPort(legacySetting.value("port").toString());
servers().setPlayerName(legacySetting.value("playername").toString());
servers().setPassword(legacySetting.value("password").toString());
servers().setSavePassword(legacySetting.value("save_password").toInt());
servers().setAutoConnect(legacySetting.value("auto_connect").toInt());
servers().setFPHostName(legacySetting.value("fphostname").toString());
servers().setFPPort(legacySetting.value("fpport").toString());