code_app/app/scanner2/dialog_passwordchange.cpp

103 lines
3.7 KiB
C++
Raw Normal View History

2022-05-03 10:25:52 +00:00
#include "dialog_passwordchange.h"
#include "ui_dialog_passwordchange.h"
#include <QMessageBox>
#include <QPushButton>
#include <QRegExpValidator>
#include <QToolTip>
Dialog_PasswordChange::Dialog_PasswordChange(const QString &old_password, QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog_PasswordChange),
m_old_password(old_password),
m_new_password("")
{
ui->setupUi(this);
2023-03-06 09:19:06 +00:00
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
2022-05-03 10:25:52 +00:00
QRegExp rx("[a-zA-Z0-9!@#%^&*()_]+$"); //创建一个正则表达式对象rx
qReg = new QRegExpValidator(rx, this); //创建一个过滤器对象
m_lineEditList<<ui->lineEdit_oldPassword<<ui->lineEdit_newPassword<<ui->lineEdit_confirmPassword;
foreach(QLineEdit* item, m_lineEditList)
{
item->setEchoMode(QLineEdit::Password);
item->setMaxLength(20);
item->setValidator(qReg);
}
m_lineEditList[0]->setPlaceholderText(tr("Type old password"));
m_lineEditList[1]->setPlaceholderText(tr("Type new password"));
m_lineEditList[2]->setPlaceholderText(tr("Retype new password"));
}
Dialog_PasswordChange::~Dialog_PasswordChange()
{
delete qReg;
delete ui;
}
QString Dialog_PasswordChange::getNewPassword()
{
return m_new_password;
}
void Dialog_PasswordChange::on_cbtn_showPassword_toggled(bool checked)
{
foreach(QLineEdit* item, m_lineEditList)
item->setEchoMode(checked ? QLineEdit::Normal : QLineEdit::PasswordEchoOnEdit);
}
void Dialog_PasswordChange::on_lineEdit_oldPassword_textChanged(const QString &arg1)
{
ui->btn_ok->setEnabled(arg1.length() >= 8 && ui->lineEdit_newPassword->text().length() >= 8 && ui->lineEdit_confirmPassword->text().length() >= 8);
}
void Dialog_PasswordChange::on_lineEdit_newPassword_textChanged(const QString &arg1)
{
ui->btn_ok->setEnabled(arg1.length() >= 8 && ui->lineEdit_newPassword->text().length() >= 8 && ui->lineEdit_confirmPassword->text().length() >= 8);
}
void Dialog_PasswordChange::on_lineEdit_confirmPassword_textChanged(const QString &arg1)
{
ui->btn_ok->setEnabled(arg1.length() >= 8 && ui->lineEdit_newPassword->text().length() >= 8 && ui->lineEdit_confirmPassword->text().length() >= 8);
}
void Dialog_PasswordChange::on_btn_ok_clicked()
{
if(ui->lineEdit_oldPassword->text() != m_old_password)
QMessageBox::warning(this,
tr("Warning"),
tr("Old password incorrect.\n"
"Please try again."));
else if(ui->lineEdit_newPassword->text() != ui->lineEdit_confirmPassword->text())
QMessageBox::warning(this,
tr("Warning"),
tr("New password and confirm password are not matched.\n"
"Please make sure the two passwords are the same."));
else
{
m_new_password = ui->lineEdit_newPassword->text();
done(1);
}
}
void Dialog_PasswordChange::on_btn_cancel_clicked()
{
done(0);
}
void Dialog_PasswordChange::on_lineEdit_oldPassword_inputRejected()
{
QToolTip::showText(mapToGlobal(ui->lineEdit_oldPassword->pos()),
tr("Password only allowed to use numbers, English and special characters."));
}
void Dialog_PasswordChange::on_lineEdit_newPassword_inputRejected()
{
QToolTip::showText(mapToGlobal(ui->lineEdit_newPassword->pos()),
tr("Password only allowed to use numbers, English and special characters."));
}
void Dialog_PasswordChange::on_lineEdit_confirmPassword_inputRejected()
{
QToolTip::showText(mapToGlobal(ui->lineEdit_confirmPassword->pos()),
tr("Password only allowed to use numbers, English and special characters."));
}