#include "dialog_login.h" #include "ui_dialog_login.h" #include #include #include #include #include #include "base/HGUtility.h" #include "HGString.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::Dialog | Qt::WindowCloseButtonHint); QFont ft; ft.setPointSize(15); this->setFont(ft); QFont ft2; ft2.setPointSize(8); ui->lineEdit_password->setFont(ft2); ui->pbtn_login->setDefault(true); 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); } updateProfileFileList(); ui->lineEdit_password->setEchoMode(QLineEdit::EchoMode::Password); ui->lineEdit_account->setText(getCfgValue("login", "account", QString(""))); 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.toLocal8Bit().toStdString().c_str(), "password", QString("")); if (!cfgPassword.isEmpty()) { ui->lineEdit_password->setText(cfgPassword); } } 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; } QString Dialog_logIn::getConfigFilePath() { 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()); } void Dialog_logIn::updateProfileFileList() { ui->comboBox_filenameList->clear(); QString configFilePath = getConfigFilePath(); QDir dir(configFilePath); if (dir.exists()) { QFileInfoList fileList = dir.entryInfoList(QDir::Files); for (int i = 0; i < fileList.size(); ++i) { QFileInfo file(fileList[i]); ui->comboBox_filenameList->addItem(file.baseName()); } } if (ui->comboBox_filenameList->count() > 0) { QString fileName = getCfgValue("login", "profile", QString("")); QFileInfo file(fileName); ui->comboBox_filenameList->setCurrentText(file.baseName()); } } void Dialog_logIn::on_pbtn_login_clicked() { QString account = ui->lineEdit_account->text(); QString password = ui->lineEdit_password->text(); QString cfgPassword = getCfgValue(account.toLocal8Bit().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->comboBox_filenameList->currentText().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_profileName = getConfigFilePath() + ui->comboBox_filenameList->currentText() + ".json"; saveCfgValue("login", "profile", m_profileName); 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_register_clicked() { Dialog_RegisterAccount dlg; dlg.exec(); } void Dialog_logIn::on_checkBox_showPswd_toggled(bool checked) { ui->lineEdit_password->setEchoMode(checked ? QLineEdit::Normal : QLineEdit::Password); } void Dialog_logIn::on_pushButton_updateFilename_clicked() { updateProfileFileList(); } void Dialog_logIn::on_pushButton_viewDirectory_clicked() { 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()); } QFileInfo fileInfo(fileName); auto pathDir = fileInfo.path(); QString strFilePath = "file:///" + pathDir; bool ret = QDesktopServices::openUrl(QUrl(strFilePath)); if (!ret) QMessageBox::information(this, tr("Prompt"), tr("Profile is not exsits")); }