1 #include "dlg_forgotpasswordchallenge.h"
2
3 #include "settingscache.h"
4
5 #include <QCheckBox>
6 #include <QDebug>
7 #include <QDialogButtonBox>
8 #include <QGridLayout>
9 #include <QHBoxLayout>
10 #include <QLabel>
11 #include <QMessageBox>
12
DlgForgotPasswordChallenge(QWidget * parent)13 DlgForgotPasswordChallenge::DlgForgotPasswordChallenge(QWidget *parent) : QDialog(parent)
14 {
15
16 QString lastfphost;
17 QString lastfpport;
18 QString lastfpplayername;
19 ServersSettings &servers = SettingsCache::instance().servers();
20 lastfphost = servers.getHostname("server.cockatrice.us");
21 lastfpport = servers.getPort("4747");
22 lastfpplayername = servers.getPlayerName("Player");
23
24 if (!servers.getFPHostname().isEmpty() && !servers.getFPPort().isEmpty() && !servers.getFPPlayerName().isEmpty()) {
25 lastfphost = servers.getFPHostname();
26 lastfpport = servers.getFPPort();
27 lastfpplayername = servers.getFPPlayerName();
28 }
29
30 if (servers.getFPHostname().isEmpty() && servers.getFPPort().isEmpty() && servers.getFPPlayerName().isEmpty()) {
31 QMessageBox::warning(this, tr("Forgot Password Challenge Warning"),
32 tr("Oops, looks like something has gone wrong. Please restart the forgot password "
33 "process by using the forgot password button on the connection screen."));
34 reject();
35 }
36
37 hostLabel = new QLabel(tr("&Host:"));
38 hostEdit = new QLineEdit(lastfphost);
39 hostLabel->setBuddy(hostEdit);
40
41 portLabel = new QLabel(tr("&Port:"));
42 portEdit = new QLineEdit(lastfpport);
43 portLabel->setBuddy(portEdit);
44
45 playernameLabel = new QLabel(tr("Player &name:"));
46 playernameEdit = new QLineEdit(lastfpplayername);
47 playernameLabel->setBuddy(playernameEdit);
48
49 emailLabel = new QLabel(tr("Email:"));
50 emailEdit = new QLineEdit();
51 emailLabel->setBuddy(emailLabel);
52
53 if (!servers.getFPHostname().isEmpty() && !servers.getFPPort().isEmpty() && !servers.getFPPlayerName().isEmpty()) {
54 hostLabel->hide();
55 hostEdit->hide();
56 portLabel->hide();
57 portEdit->hide();
58 playernameLabel->hide();
59 playernameEdit->hide();
60 }
61
62 QGridLayout *grid = new QGridLayout;
63 grid->addWidget(hostLabel, 0, 0);
64 grid->addWidget(hostEdit, 0, 1);
65 grid->addWidget(portLabel, 1, 0);
66 grid->addWidget(portEdit, 1, 1);
67 grid->addWidget(playernameLabel, 2, 0);
68 grid->addWidget(playernameEdit, 2, 1);
69 grid->addWidget(emailLabel, 3, 0);
70 grid->addWidget(emailEdit, 3, 1);
71
72 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
73 connect(buttonBox, SIGNAL(accepted()), this, SLOT(actOk()));
74 connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
75
76 QVBoxLayout *mainLayout = new QVBoxLayout;
77 mainLayout->addLayout(grid);
78 mainLayout->addWidget(buttonBox);
79 setLayout(mainLayout);
80
81 setWindowTitle(tr("Forgot Password Challenge"));
82 setFixedHeight(sizeHint().height());
83 setMinimumWidth(300);
84 }
85
actOk()86 void DlgForgotPasswordChallenge::actOk()
87 {
88 if (emailEdit->text().isEmpty()) {
89 QMessageBox::critical(this, tr("Forgot Password Challenge Warning"), tr("The email address can't be empty."));
90 return;
91 }
92
93 ServersSettings &servers = SettingsCache::instance().servers();
94 servers.setFPHostName(hostEdit->text());
95 servers.setFPPort(portEdit->text());
96 servers.setFPPlayerName(playernameEdit->text());
97
98 accept();
99 }
100