23 #include "passworddlg.h"
25 #include "ui_passworddlg.h"
27 #include "configuration/doomseekerconfig.h"
28 #include "configuration/passwordscfg.h"
29 #include "configuration/serverpassword.h"
30 #include "gui/commongui.h"
31 #include "gui/helpers/comboboxex.h"
32 #include "serverapi/server.h"
36 DClass<PasswordDlg> :
public Ui::PasswordDlg
51 d->cboConnectPassEx =
new ComboBoxEx(*d->cboConnectPassword);
52 d->cboIngamePassEx =
new ComboBoxEx(*d->cboIngamePassword);
55 applyInputsVisibility();
59 setMinimumHeight(height());
60 setMaximumHeight(height());
65 PasswordDlg::~PasswordDlg()
67 delete d->cboConnectPassEx;
70 void PasswordDlg::accept()
76 void PasswordDlg::applyInputsVisibility()
78 d->connectPasswordWidget->setVisible(d->server->isLocked());
79 d->ingamePasswordWidget->setVisible(d->server->isLockedInGame());
82 QString PasswordDlg::connectPassword()
const
84 return d->cboConnectPassword->currentText();
87 QString PasswordDlg::inGamePassword()
const
89 return d->cboIngamePassword->currentText();
92 void PasswordDlg::loadConfiguration()
95 setHidePasswords(cfg.isHidingPasswords());
96 d->remember->setChecked(cfg.isRememberingConnectPhrase());
97 setPasswords(cfg.serverPhrases());
99 d->server.data(), ServerPasswordType::CONNECT).phrase());
101 d->server.data(), ServerPasswordType::INGAME).phrase());
104 void PasswordDlg::removeCurrentConnectPassword()
107 QString phrase = d->cboConnectPassword->currentText();
108 cfg.removeServerPhrase(d->cboConnectPassword->currentText());
110 d->cboIngamePassEx->removeItem(phrase);
111 if (!d->cboConnectPassEx->removeCurrentItem())
113 d->cboConnectPassword->clearEditText();
114 d->cboConnectPassword->setFocus();
118 void PasswordDlg::removeCurrentIngamePassword()
121 QString phrase = d->cboIngamePassword->currentText();
122 cfg.removeServerPhrase(d->cboIngamePassword->currentText());
124 d->cboConnectPassEx->removeItem(phrase);
125 if (!d->cboIngamePassEx->removeCurrentItem())
127 d->cboIngamePassword->clearEditText();
128 d->cboIngamePassword->setFocus();
132 void PasswordDlg::saveConfiguration()
135 cfg.setRememberConnectPhrase(d->remember->isChecked());
136 if (d->remember->isChecked())
138 cfg.
saveServerPhrase(connectPassword(), d->server.data(), ServerPasswordType::CONNECT);
139 cfg.
saveServerPhrase(inGamePassword(), d->server.data(), ServerPasswordType::INGAME);
143 void PasswordDlg::setCurrentConnectPassword(
const QString &password)
145 d->cboConnectPassEx->setCurrentOrAddNewAndSelect(password);
148 void PasswordDlg::setCurrentIngamePassword(
const QString &password)
150 d->cboIngamePassEx->setCurrentOrAddNewAndSelect(password);
153 void PasswordDlg::setHidePasswords(
bool hide)
155 d->cbHidePasswords->blockSignals(
true);
156 d->cbHidePasswords->setChecked(hide);
157 d->cbHidePasswords->blockSignals(
false);
158 d->cboConnectPassword->lineEdit()->setEchoMode(hide ? QLineEdit::Password : QLineEdit::Normal);
159 d->cboIngamePassword->lineEdit()->setEchoMode(hide ? QLineEdit::Password : QLineEdit::Normal);
162 void PasswordDlg::setPasswords(
const QStringList &passwords)
164 d->cboConnectPassEx->setItemsSorted(passwords);
165 d->cboIngamePassEx->setItemsSorted(passwords);