code_production/app/HGProductionTool/dialog_login.cpp

201 lines
5.6 KiB
C++
Raw Normal View History

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>
2022-12-26 08:24:20 +00:00
#include "base/HGUtility.h"
#include "base/HGIni.h"
#include "HGUIGlobal.h"
#include "HGString.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)
2022-12-22 02:48:06 +00:00
, m_pdtToolDbuserMgr(nullptr)
2022-12-14 06:39:22 +00:00
{
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
2022-12-28 06:57:00 +00:00
QFont ft;
ft.setPointSize(15);
this->setFont(ft);
2022-12-14 06:39:22 +00:00
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);
2022-12-14 06:39:22 +00:00
2022-12-31 06:18:08 +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)));
2022-12-26 08:24:20 +00:00
QString account("root");
QString dbHost("192.168.1.70");
QString dbPort("3306");
QString ftpHost("192.168.1.70");
QString ftpPort("21");
2022-12-26 08:24:20 +00:00
ui->lineEdit_account->setText(getCfgValue("login", "account", account));
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-26 08:24:20 +00:00
ui->stackedWidget->setCurrentIndex(0);
2022-12-14 06:39:22 +00:00
}
Dialog_logIn::~Dialog_logIn()
{
delete ui;
}
2022-12-22 02:48:06 +00:00
HGPdtToolDbUserMgr Dialog_logIn::GetUserMgr()
{
return m_pdtToolDbuserMgr;
}
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;
}
2022-12-14 06:39:22 +00:00
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 dbHost = ui->lineEdit_dbHost->text();
QString dbPort = ui->lineEdit_dbPort->text();
QString ftpHost = ui->lineEdit_ftpHost->text();
QString ftpPort = ui->lineEdit_ftpPort->text();
2022-12-26 08:24:20 +00:00
saveCfgValue("login", "account", account);
saveCfgValue("login", "dbHost", dbHost);
saveCfgValue("login", "dbPort", dbPort);
saveCfgValue("login", "ftpHost", ftpHost);
saveCfgValue("login", "ftpPort", ftpPort);
2022-12-14 06:39:22 +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;
2022-12-22 02:48:06 +00:00
HGPdtToolDbUserMgr pdtToolDbuserMgr = nullptr;
2022-12-31 09:14:20 +00:00
HGPdtToolDb_CreateUserMgr(dbHost.toStdString().c_str(), dbPort.toInt(), account.toStdString().c_str(), password.toStdString().c_str(),
2022-12-22 02:48:06 +00:00
&pdtToolDbuserMgr);
if (NULL != pdtToolDbuserMgr)
2022-12-14 06:39:22 +00:00
{
2022-12-22 02:48:06 +00:00
m_pdtToolDbuserMgr = pdtToolDbuserMgr;
2022-12-14 06:39:22 +00:00
accept();
}
else
{
2022-12-31 09:14:20 +00:00
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
}
}
void Dialog_logIn::on_pushButton_exit_clicked()
{
reject();
}
void Dialog_logIn::on_pbtn_setting_clicked(bool checked)
{
if (checked)
{
ui->stackedWidget->setCurrentIndex(1);
}
else
{
ui->stackedWidget->setCurrentIndex(0);
}
2022-12-14 06:39:22 +00:00
}
void Dialog_logIn::on_pbtn_minum_clicked()
{
this->window()->showMinimized();
}
void Dialog_logIn::on_pbtn_close_clicked()
{
close();
}
2022-12-26 08:24:20 +00:00
void Dialog_logIn::saveCfgValue(const char *appName, const char *key, const QString &value)
{
HGChar cfgPath[512];
HGBase_GetConfigPath(cfgPath, 512);
HGBase_CreateDir(cfgPath);
strcat(cfgPath, "config.ini");
HGBase_SetProfileString(cfgPath, appName, key, getStdString(value).c_str());
}
QString Dialog_logIn::getCfgValue(const char *appName, const char *key, const QString &def)
{
HGChar cfgPath[512];
HGBase_GetConfigPath(cfgPath, 512);
strcat(cfgPath, "config.ini");
2022-12-31 06:18:08 +00:00
std::string def2 = getStdString(def);
2022-12-26 08:24:20 +00:00
HGChar value[512] = {0};
2022-12-31 06:18:08 +00:00
HGBase_GetProfileString(cfgPath, appName, key, def2.c_str(), value, 512);
2022-12-26 08:24:20 +00:00
return StdStringToUtf8(value).c_str();
}