1 #include "dlg_edit_password.h"
2
3 #include "settingscache.h"
4
5 #include <QDialogButtonBox>
6 #include <QGridLayout>
7 #include <QHBoxLayout>
8 #include <QLabel>
9 #include <QMessageBox>
10
DlgEditPassword(QWidget * parent)11 DlgEditPassword::DlgEditPassword(QWidget *parent) : QDialog(parent)
12 {
13
14 oldPasswordLabel = new QLabel(tr("Old password:"));
15 oldPasswordEdit = new QLineEdit();
16
17 if (SettingsCache::instance().servers().getSavePassword())
18 oldPasswordEdit->setText(SettingsCache::instance().servers().getPassword());
19
20 oldPasswordLabel->setBuddy(oldPasswordEdit);
21 oldPasswordEdit->setEchoMode(QLineEdit::Password);
22
23 newPasswordLabel = new QLabel(tr("New password:"));
24 newPasswordEdit = new QLineEdit();
25 newPasswordLabel->setBuddy(newPasswordLabel);
26 newPasswordEdit->setEchoMode(QLineEdit::Password);
27
28 newPasswordLabel2 = new QLabel(tr("Confirm new password:"));
29 newPasswordEdit2 = new QLineEdit();
30 newPasswordLabel2->setBuddy(newPasswordLabel2);
31 newPasswordEdit2->setEchoMode(QLineEdit::Password);
32
33 QGridLayout *grid = new QGridLayout;
34 grid->addWidget(oldPasswordLabel, 0, 0);
35 grid->addWidget(oldPasswordEdit, 0, 1);
36 grid->addWidget(newPasswordLabel, 1, 0);
37 grid->addWidget(newPasswordEdit, 1, 1);
38 grid->addWidget(newPasswordLabel2, 2, 0);
39 grid->addWidget(newPasswordEdit2, 2, 1);
40
41 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
42 connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));
43 connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
44
45 QVBoxLayout *mainLayout = new QVBoxLayout;
46 mainLayout->addLayout(grid);
47 mainLayout->addWidget(buttonBox);
48 setLayout(mainLayout);
49
50 setWindowTitle(tr("Change password"));
51 setFixedHeight(sizeHint().height());
52 setMinimumWidth(300);
53 }
54
actOk()55 void DlgEditPassword::actOk()
56 {
57 if (newPasswordEdit->text() != newPasswordEdit2->text()) {
58 QMessageBox::warning(this, tr("Error"), tr("The new passwords don't match."));
59 return;
60 }
61
62 // always save the password so it will be picked up by the connect dialog
63 SettingsCache::instance().servers().setPassword(newPasswordEdit->text());
64 accept();
65 }
66