-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfirmpassworddialog.cpp
115 lines (90 loc) · 2.78 KB
/
confirmpassworddialog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "confirmpassworddialog.h"
#include "ui_confirmpassword.h"
#include "QRegularExpressionValidator"
#include <QDebug>
#include <QMessageBox>
ConfirmPasswordDialog::ConfirmPasswordDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::ConfirmPasswordDialog)
{
ui->setupUi(this);
ui->pushButton_ok->setEnabled(false);
QRegularExpression rx("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$");
ui->new_password->setValidator(new QRegularExpressionValidator(rx, this));
ui->password->setCursor(QCursor());
}
ConfirmPasswordDialog::~ConfirmPasswordDialog()
{
delete ui;
}
void ConfirmPasswordDialog::errorPwd(const QString& str)
{
QMessageBox::warning(this,"Error password", str);
}
void ConfirmPasswordDialog::updOK()
{
QMessageBox::information(this,"Success","Password updated");
this->close();
this->ui->new_password->clear();
this->ui->password->clear();
this->ui->new_rpwd->clear();
ui->error->clear();
}
void ConfirmPasswordDialog::on_new_password_textChanged(const QString &arg1)
{
QString str = arg1.simplified();
if(!ui->new_password->hasAcceptableInput()){
ui->error->setText("Password must be at least 8 characters,contain at\n"
"least one number, at least one capital letter and\n"
"at least one lowercase and one special character");
valid["pwd"]=false;
}
else{
ui->error->clear();
valid["pwd"]=true;
checkValid(valid);
if(str.compare(ui->new_rpwd->text())!=0){
ui->error->setText("Passwords must match");
valid["pwdR"]=false;
}
else{
ui->error->clear();
valid["pwdR"]=true;
checkValid(valid);
}
}
}
void ConfirmPasswordDialog::on_new_rpwd_textChanged(const QString &arg1)
{
QString str = arg1.simplified();
if(str.compare(ui->new_password->text())!=0){
ui->error->setText("Passwords must match");
valid["pwdR"]=false;
}
else{
ui->error->clear();
valid["pwdR"]=true;
checkValid(valid);
}
}
void ConfirmPasswordDialog::checkValid(QMap<QString, bool> valid)
{
if(valid["pwd"]&&valid["pwdR"]){
ui->pushButton_ok->setEnabled(true);
}else{
ui->pushButton_ok->setEnabled(false);
}
}
void ConfirmPasswordDialog::on_pushButton_cancel_clicked()
{
this->close();
this->ui->new_password->clear();
this->ui->password->clear();
this->ui->new_rpwd->clear();
}
void ConfirmPasswordDialog::on_pushButton_ok_clicked()
{
const QString pwd = ui->password->text();
const QString pwdNew= ui->new_password->text();
emit passwordData(pwd,pwdNew);
}