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