-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdefinepasswordwindow.cpp
120 lines (100 loc) · 3.3 KB
/
definepasswordwindow.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
116
117
118
119
#include "definepasswordwindow.h"
#include "ui_definepasswordwindow.h"
#include "databaseconnection.h"
#include <QMessageBox>
DefinePasswordWindow::DefinePasswordWindow(QString username, QWidget *parent) :
QDialog(parent),
ui(new Ui::DefinePasswordWindow)
{
ui->setupUi(this);
// Window layout
QIcon iconWindow;
iconWindow.addFile(":/images/login.png");
this->setWindowIcon(iconWindow);
this->setWindowTitle("Define password");
this->setFixedSize(366, 168);
// Update username class variable
this->username = username;
// Init icons
eyeCloseIcon.addFile(":/images/eye_close.png");
eyeOpenIcon.addFile(":/images/eye_open.png");
// Init buttons and line edit
ui->pushButton_eye_confirmPassword->setIcon(eyeOpenIcon);
ui->pushButton_eye_password->setIcon(eyeOpenIcon);
ui->lineEdit_confirmPassword->setEchoMode(QLineEdit::Password);
ui->lineEdit_password->setEchoMode(QLineEdit::Password);
}
DefinePasswordWindow::~DefinePasswordWindow()
{
delete ui;
}
void DefinePasswordWindow::on_pushButton_confirm_clicked()
{
// Check the password length
if((ui->lineEdit_password->text().length() < 5) || (ui->lineEdit_password->text().length() > 10))
{
QMessageBox::warning(this, "Warning", "A password must have between 5 and 10 characters");
return;
}
// Check if the passwords are the same
if(ui->lineEdit_password->text() != ui->lineEdit_confirmPassword->text())
{
QMessageBox::warning(this, "Warning", "The passwords must be the same");
return;
}
// The password is valid, update database
DatabaseConnection dbConnection;
if(!dbConnection.open())
{
QMessageBox::warning(this, "Error", "Unable to connect database to update password");
}
else
{
// Update database
QSqlQuery query;
query.prepare("UPDATE tb_collaborators SET password = '" + ui->lineEdit_password->text() + "' WHERE username = '" + username + "'");
if(query.exec())
{
QMessageBox::information(this, "Success", "Username password updated");
}
else
{
QMessageBox::warning(this, "Error", "Unable to update username password from database");
dbConnection.close();
return;
}
dbConnection.close();
}
accept();
close();
}
void DefinePasswordWindow::on_pushButton_eye_password_clicked()
{
if(ui->lineEdit_password->echoMode() == QLineEdit::Password)
{
// Show password
ui->lineEdit_password->setEchoMode(QLineEdit::Normal);
ui->pushButton_eye_password->setIcon(eyeCloseIcon);
}
else
{
// Hide password
ui->lineEdit_password->setEchoMode(QLineEdit::Password);
ui->pushButton_eye_password->setIcon(eyeOpenIcon);
}
}
void DefinePasswordWindow::on_pushButton_eye_confirmPassword_clicked()
{
if(ui->lineEdit_confirmPassword->echoMode() == QLineEdit::Password)
{
// Show password
ui->lineEdit_confirmPassword->setEchoMode(QLineEdit::Normal);
ui->pushButton_eye_confirmPassword->setIcon(eyeCloseIcon);
}
else
{
// Hide password
ui->lineEdit_confirmPassword->setEchoMode(QLineEdit::Password);
ui->pushButton_eye_confirmPassword->setIcon(eyeOpenIcon);
}
}