#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_deviceType(DeviceType_G100) , m_deviceConfig("") , m_loginType(LogInType_Station1) { ui->setupUi(this); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); ui->comboBox_deviceType->addItem("G100"); ui->comboBox_deviceType->addItem("G200"); ui->comboBox_deviceType->addItem("G300"); ui->comboBox_deviceType->addItem("G400"); ui->comboBox_deviceType->setCurrentIndex(getCfgValue("login", "devType", 0)); QFont ft; ft.setPointSize(15); this->setFont(ft); QFont ft2; ft2.setPointSize(8); ui->lineEdit_password->setFont(ft2); ui->pbtn_login->setDefault(true); saveCfgValue("admin", "password", getCfgValue("admin", "password", QString("huagaoadmin"))); int type = getCfgValue("login", "station", 0); if (0 == type) { ui->radioButton_station1->setChecked(true); } else if (1 == type) { ui->radioButton_station2->setChecked(true); } else if (2 == type) { ui->radioButton_station3->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); } } } Dialog_logIn::~Dialog_logIn() { delete ui; } QString Dialog_logIn::GetAccountName() { return m_accountName; } Dialog_logIn::DeviceType Dialog_logIn::GetDeviceType() { return m_deviceType; } QString Dialog_logIn::GetDeviceConfig() { return m_deviceConfig; } Dialog_logIn::LogInType Dialog_logIn::GetLogInType() { return m_loginType; } 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_deviceConfig->clear(); QString configFilePath = getConfigFilePath() + ui->comboBox_deviceType->currentText(); 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_deviceConfig->addItem(file.baseName()); } } if (ui->comboBox_deviceConfig->count() > 0) { QString fileName = getCfgValue("login", "profile", QString("")); QFileInfo file(fileName); ui->comboBox_deviceConfig->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_deviceConfig->currentText().isEmpty()) { QMessageBox::information(this, tr("Prompt"), tr("Please select a profile first")); return; } m_accountName = account; saveCfgValue("login", "account", account); saveCfgValue("login", "rememberPassword", ui->checkBox_rememberPswd->isChecked()); saveCfgValue("login", "showPassword", ui->checkBox_showPswd->isChecked()); m_deviceType = (DeviceType)ui->comboBox_deviceType->currentIndex(); saveCfgValue("login", "devType", m_deviceType); m_deviceConfig = getConfigFilePath() + ui->comboBox_deviceType->currentText() + "/" + ui->comboBox_deviceConfig->currentText() + ".json"; saveCfgValue("login", "profile", m_deviceConfig); m_loginType = LogInType_Station1; if (ui->radioButton_station2->isChecked()) m_loginType = LogInType_Station2; else if (ui->radioButton_station3->isChecked()) m_loginType = LogInType_Station3; saveCfgValue("login", "station", m_loginType); accept(); } void Dialog_logIn::on_pbtn_register_clicked() { Dialog_RegisterAccount dlg(this); 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_updateConfig_clicked() { updateProfileFileList(); } void Dialog_logIn::on_pushButton_viewDirectory_clicked() { QString configName = ui->comboBox_deviceConfig->currentText(); QString fileName = getConfigFilePath(); if (!configName.isEmpty()) { fileName = getConfigFilePath() + ui->comboBox_deviceType->currentText() + "/" + 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")); } void Dialog_logIn::on_comboBox_deviceType_currentIndexChanged(const QString &arg1) { updateProfileFileList(); if ("G100" == arg1 || "G200" == arg1) { ui->radioButton_station1->setText(tr("init test")); ui->radioButton_station2->setText(tr("image test")); ui->radioButton_station3->setText(tr("finish test")); } else { ui->radioButton_station1->setText(tr("burn")); ui->radioButton_station2->setText(tr("init test")); ui->radioButton_station3->setText(tr("image test")); } }