23 #include "passworddlg.h"
25 #include "ui_passworddlg.h"
27 #include "configuration/passwordscfg.h"
28 #include "configuration/serverpassword.h"
29 #include "gui/commongui.h"
30 #include "gui/helpers/comboboxex.h"
31 #include "serverapi/server.h"
35 DClass<PasswordDlg> :
public Ui::PasswordDlg
50 d->cboConnectPassEx =
new ComboBoxEx(*d->cboConnectPassword);
51 d->cboIngamePassEx =
new ComboBoxEx(*d->cboIngamePassword);
54 applyInputsVisibility();
58 setMinimumHeight(height());
59 setMaximumHeight(height());
64 PasswordDlg::~PasswordDlg()
66 delete d->cboConnectPassEx;
69 void PasswordDlg::accept()
75 void PasswordDlg::applyInputsVisibility()
77 d->connectPasswordWidget->setVisible(d->server->isLocked());
78 d->ingamePasswordWidget->setVisible(d->server->isLockedInGame());
81 QString PasswordDlg::connectPassword()
const
83 return d->cboConnectPassword->currentText();
86 QString PasswordDlg::inGamePassword()
const
88 return d->cboIngamePassword->currentText();
91 void PasswordDlg::loadConfiguration()
94 if (cfg.isHidingPasswords())
96 d->cboConnectPassword->lineEdit()->setEchoMode(QLineEdit::Password);
97 d->cboIngamePassword->lineEdit()->setEchoMode(QLineEdit::Password);
99 d->remember->setChecked(cfg.isRememberingConnectPhrase());
100 setPasswords(cfg.serverPhrases());
102 d->server.data(), ServerPasswordType::CONNECT).phrase());
104 d->server.data(), ServerPasswordType::INGAME).phrase());
107 void PasswordDlg::removeCurrentConnectPassword()
110 QString phrase = d->cboConnectPassword->currentText();
111 cfg.removeServerPhrase(d->cboConnectPassword->currentText());
113 d->cboIngamePassEx->removeItem(phrase);
114 if (!d->cboConnectPassEx->removeCurrentItem())
116 d->cboConnectPassword->clearEditText();
117 d->cboConnectPassword->setFocus();
121 void PasswordDlg::removeCurrentIngamePassword()
124 QString phrase = d->cboIngamePassword->currentText();
125 cfg.removeServerPhrase(d->cboIngamePassword->currentText());
127 d->cboConnectPassEx->removeItem(phrase);
128 if (!d->cboIngamePassEx->removeCurrentItem())
130 d->cboIngamePassword->clearEditText();
131 d->cboIngamePassword->setFocus();
135 void PasswordDlg::saveConfiguration()
138 cfg.setRememberConnectPhrase(d->remember->isChecked());
139 if (d->remember->isChecked())
141 cfg.
saveServerPhrase(connectPassword(), d->server.data(), ServerPasswordType::CONNECT);
142 cfg.
saveServerPhrase(inGamePassword(), d->server.data(), ServerPasswordType::INGAME);
146 void PasswordDlg::setCurrentConnectPassword(
const QString &password)
148 d->cboConnectPassEx->setCurrentOrAddNewAndSelect(password);
151 void PasswordDlg::setCurrentIngamePassword(
const QString &password)
153 d->cboIngamePassEx->setCurrentOrAddNewAndSelect(password);
156 void PasswordDlg::setPasswords(
const QStringList &passwords)
158 d->cboConnectPassEx->setItemsSorted(passwords);
159 d->cboIngamePassEx->setItemsSorted(passwords);