2022-12-14 06:39:22 +00:00
|
|
|
#include "dialog_login.h"
|
|
|
|
#include "ui_dialog_login.h"
|
|
|
|
#include <QMessageBox>
|
2023-01-04 06:28:44 +00:00
|
|
|
#include <QRegExpValidator>
|
|
|
|
#include <QMouseEvent>
|
2023-08-31 07:15:14 +00:00
|
|
|
#include <QFileDialog>
|
2024-01-04 06:49:22 +00:00
|
|
|
#include <QDesktopServices>
|
2022-12-26 08:24:20 +00:00
|
|
|
#include "base/HGUtility.h"
|
2024-01-04 06:49:22 +00:00
|
|
|
#include "HGString.h"
|
2023-08-31 07:15:14 +00:00
|
|
|
#include "HGUIGlobal.h"
|
2023-08-31 02:16:44 +00:00
|
|
|
#include "dialog_registeraccount.h"
|
|
|
|
#include "app_cfg.h"
|
2022-12-14 06:39:22 +00:00
|
|
|
|
2022-12-22 02:48:06 +00:00
|
|
|
Dialog_logIn::Dialog_logIn(QWidget *parent) :
|
|
|
|
QDialog(parent),
|
2022-12-14 06:39:22 +00:00
|
|
|
ui(new Ui::Dialog_logIn)
|
2023-08-31 02:16:44 +00:00
|
|
|
, m_accountName("")
|
2023-08-31 07:15:14 +00:00
|
|
|
, m_profileName("")
|
2022-12-14 06:39:22 +00:00
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
2022-12-14 06:39:22 +00:00
|
|
|
|
2022-12-28 06:57:00 +00:00
|
|
|
QFont ft;
|
|
|
|
ft.setPointSize(15);
|
|
|
|
this->setFont(ft);
|
|
|
|
|
2023-09-11 08:00:44 +00:00
|
|
|
QFont ft2;
|
|
|
|
ft2.setPointSize(8);
|
|
|
|
ui->lineEdit_password->setFont(ft2);
|
|
|
|
|
2023-09-12 03:02:45 +00:00
|
|
|
ui->pbtn_login->setDefault(true);
|
2023-08-31 02:16:44 +00:00
|
|
|
ui->radioButton_pressureTest->setVisible(false);
|
|
|
|
|
2023-09-01 10:42:28 +00:00
|
|
|
saveCfgValue("admin", "password", getCfgValue("admin", "password", QString("huagaoadmin")));
|
|
|
|
|
2023-09-11 08:00:44 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
updateProfileFileList();
|
2023-08-31 07:15:14 +00:00
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password);
|
2023-09-01 10:42:28 +00:00
|
|
|
ui->lineEdit_account->setText(getCfgValue("login", "account", QString("")));
|
2023-09-11 08:00:44 +00:00
|
|
|
ui->checkBox_showPswd->setChecked(getCfgValue("login", "showPassword", false));
|
2023-09-01 10:42:28 +00:00
|
|
|
ui->checkBox_rememberPswd->setChecked(getCfgValue("login", "rememberPassword", false));
|
2024-01-04 06:49:22 +00:00
|
|
|
|
2023-09-01 10:42:28 +00:00
|
|
|
if (ui->lineEdit_account->text() == "admin")
|
|
|
|
ui->checkBox_rememberPswd->setChecked(false);
|
|
|
|
|
|
|
|
if (ui->checkBox_rememberPswd->isChecked())
|
|
|
|
{
|
|
|
|
QString account = ui->lineEdit_account->text();
|
2024-01-04 06:49:22 +00:00
|
|
|
QString cfgPassword = getCfgValue(account.toLocal8Bit().toStdString().c_str(), "password", QString(""));
|
2023-09-01 10:42:28 +00:00
|
|
|
|
|
|
|
if (!cfgPassword.isEmpty())
|
|
|
|
{
|
2024-01-04 06:49:22 +00:00
|
|
|
ui->lineEdit_password->setText(cfgPassword);
|
2023-09-01 10:42:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ui->stackedWidget->setCurrentIndex(0);
|
2023-08-31 07:15:14 +00:00
|
|
|
|
|
|
|
// 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");
|
|
|
|
|
2023-09-01 10:42:28 +00:00
|
|
|
|
2023-08-31 07:15:14 +00:00
|
|
|
// 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));
|
2022-12-14 06:39:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Dialog_logIn::~Dialog_logIn()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
2023-08-31 02:50:43 +00:00
|
|
|
//HGPdtToolDbUserMgr Dialog_logIn::GetUserMgr()
|
|
|
|
//{
|
|
|
|
// return m_pdtToolDbuserMgr;
|
|
|
|
//}
|
2022-12-22 02:48:06 +00:00
|
|
|
|
2022-12-27 08:25:47 +00:00
|
|
|
QString Dialog_logIn::GetFtpHost()
|
|
|
|
{
|
|
|
|
return ui->lineEdit_ftpHost->text();
|
|
|
|
}
|
|
|
|
|
|
|
|
unsigned short Dialog_logIn::GetFtpPort()
|
|
|
|
{
|
|
|
|
return ui->lineEdit_ftpPort->text().toUShort();
|
|
|
|
}
|
|
|
|
|
2023-01-04 06:28:44 +00:00
|
|
|
Dialog_logIn::LogInType Dialog_logIn::GetLogInType()
|
|
|
|
{
|
|
|
|
return m_loginType;
|
|
|
|
}
|
|
|
|
|
2023-08-31 02:16:44 +00:00
|
|
|
QString Dialog_logIn::GetAccountName()
|
|
|
|
{
|
|
|
|
return m_accountName;
|
|
|
|
}
|
|
|
|
|
2023-08-31 07:15:14 +00:00
|
|
|
QString Dialog_logIn::GetProfileName()
|
|
|
|
{
|
|
|
|
return m_profileName;
|
|
|
|
}
|
|
|
|
|
2024-01-05 09:24:10 +00:00
|
|
|
QString Dialog_logIn::getConfigFilePath()
|
2022-12-14 06:39:22 +00:00
|
|
|
{
|
2024-01-05 09:24:10 +00:00
|
|
|
HGChar configPath[512];
|
|
|
|
HGBase_GetDocumentsPath(configPath, 512);
|
|
|
|
HGChar procName[512];
|
|
|
|
HGBase_GetProcessName(procName, 512);
|
|
|
|
strcat(configPath, procName);
|
|
|
|
strcat(configPath, "/Profile/");
|
|
|
|
return getStdFileName(StdStringToUtf8(configPath).c_str());
|
2022-12-14 06:39:22 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
void Dialog_logIn::updateProfileFileList()
|
2022-12-14 06:39:22 +00:00
|
|
|
{
|
2024-01-04 06:49:22 +00:00
|
|
|
ui->comboBox_filenameList->clear();
|
|
|
|
|
2024-01-05 09:24:10 +00:00
|
|
|
QString configFilePath = getConfigFilePath();
|
|
|
|
QDir dir(configFilePath);
|
2024-01-04 06:49:22 +00:00
|
|
|
if (dir.exists())
|
2022-12-14 06:39:22 +00:00
|
|
|
{
|
2024-01-04 06:49:22 +00:00
|
|
|
QFileInfoList fileList = dir.entryInfoList(QDir::Files);
|
|
|
|
for (int i = 0; i < fileList.size(); ++i)
|
|
|
|
{
|
|
|
|
QFileInfo file(fileList[i]);
|
|
|
|
ui->comboBox_filenameList->addItem(file.baseName());
|
|
|
|
}
|
2022-12-14 06:39:22 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
if (ui->comboBox_filenameList->count() > 0)
|
2022-12-14 06:39:22 +00:00
|
|
|
{
|
2024-01-04 06:49:22 +00:00
|
|
|
QString fileName = getCfgValue("login", "profile", QString(""));
|
|
|
|
QFileInfo file(fileName);
|
|
|
|
ui->comboBox_filenameList->setCurrentText(file.baseName());
|
2022-12-14 06:39:22 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_logIn::on_pbtn_login_clicked()
|
|
|
|
{
|
|
|
|
QString account = ui->lineEdit_account->text();
|
|
|
|
QString password = ui->lineEdit_password->text();
|
2023-08-31 07:15:14 +00:00
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
QString cfgPassword = getCfgValue(account.toLocal8Bit().toStdString().c_str(), "password", QString(""));
|
2023-08-31 07:15:14 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
if (ui->comboBox_filenameList->currentText().isEmpty() && !ui->radioButton_burn->isChecked())
|
2023-08-31 07:15:14 +00:00
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("Prompt"), tr("Please select a profile first"));
|
|
|
|
return;
|
|
|
|
}
|
2022-12-29 09:54:32 +00:00
|
|
|
|
2023-01-04 06:28:44 +00:00
|
|
|
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;
|
|
|
|
|
2023-09-11 08:00:44 +00:00
|
|
|
saveCfgValue("login", "account", account);
|
|
|
|
saveCfgValue("login", "station", m_loginType);
|
|
|
|
saveCfgValue("login", "rememberPassword", ui->checkBox_rememberPswd->isChecked());
|
|
|
|
saveCfgValue("login", "showPassword", ui->checkBox_showPswd->isChecked());
|
|
|
|
|
2024-01-05 09:24:10 +00:00
|
|
|
m_profileName = getConfigFilePath() + ui->comboBox_filenameList->currentText() + ".json";
|
2024-01-04 06:49:22 +00:00
|
|
|
saveCfgValue("login", "profile", m_profileName);
|
|
|
|
|
2023-08-31 02:16:44 +00:00
|
|
|
m_accountName = account;
|
|
|
|
|
2023-08-31 02:50:43 +00:00
|
|
|
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;
|
|
|
|
// }
|
|
|
|
// }
|
2022-12-14 06:39:22 +00:00
|
|
|
}
|
|
|
|
|
2023-08-31 02:16:44 +00:00
|
|
|
void Dialog_logIn::on_pbtn_register_clicked()
|
2022-12-26 08:24:20 +00:00
|
|
|
{
|
2023-08-31 02:16:44 +00:00
|
|
|
Dialog_RegisterAccount dlg;
|
|
|
|
dlg.exec();
|
2022-12-26 08:24:20 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
void Dialog_logIn::on_checkBox_showPswd_toggled(bool checked)
|
|
|
|
{
|
|
|
|
ui->lineEdit_password->setEchoMode(checked ? QLineEdit::Normal : QLineEdit::Password);
|
|
|
|
}
|
2023-08-31 07:15:14 +00:00
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
void Dialog_logIn::on_pushButton_updateFilename_clicked()
|
2023-08-31 07:15:14 +00:00
|
|
|
{
|
2024-01-04 06:49:22 +00:00
|
|
|
updateProfileFileList();
|
2023-08-31 07:15:14 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
void Dialog_logIn::on_pushButton_viewDirectory_clicked()
|
2023-08-31 07:15:14 +00:00
|
|
|
{
|
2024-01-05 09:24:10 +00:00
|
|
|
QString configName = ui->comboBox_filenameList->currentText();
|
|
|
|
|
|
|
|
QString fileName = getConfigFilePath();
|
|
|
|
if (!configName.isEmpty())
|
|
|
|
{
|
|
|
|
fileName = getConfigFilePath() + configName.toLocal8Bit() + ".json";
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
fileName.chop(1);
|
|
|
|
HGBase_CreateDir(fileName.toStdString().c_str());
|
|
|
|
}
|
|
|
|
|
2024-01-04 06:49:22 +00:00
|
|
|
QFileInfo fileInfo(fileName);
|
|
|
|
auto pathDir = fileInfo.path();
|
|
|
|
QString strFilePath = "file:///" + pathDir;
|
2024-01-05 09:24:10 +00:00
|
|
|
bool ret = QDesktopServices::openUrl(QUrl(strFilePath));
|
|
|
|
if (!ret)
|
|
|
|
QMessageBox::information(this, tr("Prompt"), tr("Profile is not exsits"));
|
2023-08-31 07:15:14 +00:00
|
|
|
}
|