code_production/app/HGProductionTool/dialog_login.cpp

274 lines
7.7 KiB
C++

#include "dialog_login.h"
#include "ui_dialog_login.h"
#include <QMessageBox>
#include <QRegExpValidator>
#include <QMouseEvent>
#include <QFileDialog>
#include "base/HGUtility.h"
#include "HGUIGlobal.h"
#include "dialog_registeraccount.h"
#include "app_cfg.h"
Dialog_logIn::Dialog_logIn(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog_logIn)
, m_accountName("")
, m_profileName("")
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
QFont ft;
ft.setPointSize(15);
this->setFont(ft);
QFont ft2;
ft2.setPointSize(8);
ui->lineEdit_password->setFont(ft2);
ui->pbtn_login->setDefault(true);
ui->pbtn_setting->setVisible(false);
ui->radioButton_pressureTest->setVisible(false);
saveCfgValue("admin", "password", getCfgValue("admin", "password", QString("huagaoadmin")));
int type = getCfgValue("login", "station", 0);
if (LogInType_Burn == type)
{
ui->radioButton_burn->setChecked(true);
}
else if (LogInType_InitTest == type)
{
ui->radioButton_initTest->setChecked(true);
}
else if (LogInType_ImageTest == type)
{
ui->radioButton_imageTest->setChecked(true);
}
ui->pbtn_setting->setToolTip(tr("Set host and port"));
ui->pbtn_minum->setToolTip(tr("Minimize"));
ui->pbtn_close->setToolTip(tr("Close"));
ui->label_title->setText(tr("LogIn"));
ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password);
ui->lineEdit_profilePath->setReadOnly(true);
m_profileName = getCfgValue("login", "profile", m_profileName);
ui->lineEdit_account->setText(getCfgValue("login", "account", QString("")));
ui->lineEdit_profilePath->setText(m_profileName);
ui->checkBox_showPswd->setChecked(getCfgValue("login", "showPassword", false));
ui->checkBox_rememberPswd->setChecked(getCfgValue("login", "rememberPassword", false));
if (ui->lineEdit_account->text() == "admin")
ui->checkBox_rememberPswd->setChecked(false);
if (ui->checkBox_rememberPswd->isChecked())
{
QString account = ui->lineEdit_account->text();
QString cfgPassword = getCfgValue(account.toStdString().c_str(), "password", QString(""));
if (!cfgPassword.isEmpty())
{
ui->lineEdit_password->setText(getCfgValue(account.toStdString().c_str(), "password", QString("")));
}
}
ui->stackedWidget->setCurrentIndex(0);
// QString ipStr = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b";
// QString portStr = "[0-9]+$";
// ui->lineEdit_dbHost->setValidator(new QRegExpValidator(QRegExp(ipStr)));
// ui->lineEdit_ftpHost->setValidator(new QRegExpValidator(QRegExp(ipStr)));
// ui->lineEdit_dbPort->setValidator(new QRegExpValidator(QRegExp(portStr)));
// ui->lineEdit_ftpPort->setValidator(new QRegExpValidator(QRegExp(portStr)));
// QString account("root");
// QString dbHost("192.168.1.70");
// QString dbPort("3306");
// QString ftpHost("192.168.1.70");
// QString ftpPort("21");
// ui->lineEdit_dbHost->setText(getCfgValue("login", "dbHost", dbHost));
// ui->lineEdit_dbPort->setText(getCfgValue("login", "dbPort", dbPort));
// ui->lineEdit_ftpHost->setText(getCfgValue("login", "ftpHost", ftpHost));
// ui->lineEdit_ftpPort->setText(getCfgValue("login", "ftpPort", ftpPort));
}
Dialog_logIn::~Dialog_logIn()
{
delete ui;
}
//HGPdtToolDbUserMgr Dialog_logIn::GetUserMgr()
//{
// return m_pdtToolDbuserMgr;
//}
QString Dialog_logIn::GetFtpHost()
{
return ui->lineEdit_ftpHost->text();
}
unsigned short Dialog_logIn::GetFtpPort()
{
return ui->lineEdit_ftpPort->text().toUShort();
}
Dialog_logIn::LogInType Dialog_logIn::GetLogInType()
{
return m_loginType;
}
QString Dialog_logIn::GetAccountName()
{
return m_accountName;
}
QString Dialog_logIn::GetProfileName()
{
return m_profileName;
}
void Dialog_logIn::mousePressEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
m_leftMousePressed = true;
m_startPos = event->globalPos();
}
}
void Dialog_logIn::mouseMoveEvent(QMouseEvent *event)
{
if(m_leftMousePressed)
{
this->window()->move(this->window()->geometry().topLeft() + event->globalPos() - m_startPos);
m_startPos = event->globalPos();
}
}
void Dialog_logIn::mouseReleaseEvent(QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
m_leftMousePressed = false;
}
}
void Dialog_logIn::on_pbtn_login_clicked()
{
QString account = ui->lineEdit_account->text();
QString password = ui->lineEdit_password->text();
QString cfgPassword = getCfgValue(account.toStdString().c_str(), "password", QString(""));
if (cfgPassword.isEmpty())
{
QMessageBox::information(this, tr("Prompt"), tr("Account dose not exist"));
return;
}
if (password.isEmpty())
{
QMessageBox::information(this, tr("Prompt"), tr("Password can not be empty"));
return;
}
if (password != cfgPassword)
{
QMessageBox::information(this, tr("Prompt"), tr("Password error"));
return;
}
if (ui->lineEdit_profilePath->text().isEmpty() && !ui->radioButton_burn->isChecked())
{
QMessageBox::information(this, tr("Prompt"), tr("Please select a profile first"));
return;
}
if (ui->radioButton_burn->isChecked())
m_loginType = LogInType_Burn;
else if (ui->radioButton_initTest->isChecked())
m_loginType = LogInType_InitTest;
else if (ui->radioButton_imageTest->isChecked())
m_loginType = LogInType_ImageTest;
else if (ui->radioButton_pressureTest->isChecked())
m_loginType = LogInType_PressureTest;
saveCfgValue("login", "account", account);
saveCfgValue("login", "station", m_loginType);
saveCfgValue("login", "rememberPassword", ui->checkBox_rememberPswd->isChecked());
saveCfgValue("login", "showPassword", ui->checkBox_showPswd->isChecked());
m_accountName = account;
accept();
// HGPdtToolDbUserMgr pdtToolDbuserMgr = nullptr;
// HGPdtToolDb_CreateUserMgr(dbHost.toStdString().c_str(), dbPort.toInt(), account.toStdString().c_str(), password.toStdString().c_str(),
// &pdtToolDbuserMgr);
// if (NULL != pdtToolDbuserMgr)
// {
// m_pdtToolDbuserMgr = pdtToolDbuserMgr;
// accept();
// }
// else
// {
// QMessageBox msg(QMessageBox::Question, tr("tips"), tr("Login failed, sure to enter offline mode?"), QMessageBox::Yes | QMessageBox::No, this);
// msg.setButtonText(QMessageBox::Yes, tr("yes"));
// msg.setButtonText(QMessageBox::No, tr("no"));
// msg.exec();
// if (msg.clickedButton() == msg.button(QMessageBox::Yes))
// {
// m_pdtToolDbuserMgr = nullptr;
// accept();
// }
// else
// {
// return;
// }
// }
}
void Dialog_logIn::on_pbtn_setting_clicked(bool checked)
{
if (checked)
{
ui->stackedWidget->setCurrentIndex(1);
}
else
{
ui->stackedWidget->setCurrentIndex(0);
}
}
void Dialog_logIn::on_pbtn_minum_clicked()
{
this->window()->showMinimized();
}
void Dialog_logIn::on_pbtn_close_clicked()
{
close();
}
void Dialog_logIn::on_pbtn_register_clicked()
{
Dialog_RegisterAccount dlg;
dlg.exec();
}
void Dialog_logIn::on_pbtn_selectCfgFile_clicked()
{
QString fileName = QFileDialog::getOpenFileName(nullptr, tr("Select profile"), "", "*.json");
ui->lineEdit_profilePath->setText(fileName);
m_profileName = getStdFileName(fileName);
saveCfgValue("login", "profile", m_profileName);
}
void Dialog_logIn::on_checkBox_showPswd_toggled(bool checked)
{
ui->lineEdit_password->setEchoMode(checked ? QLineEdit::Normal : QLineEdit::Password);
}