Files
UpLowLimp/ZBD_IIIDL_S_Project/Src/MainWindow/loginwidget.cpp
curtis 32e5360a91 11/25
2024-11-25 17:15:44 +08:00

255 lines
6.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "loginwidget.h"
#include "ui_loginwidget.h"
#include <QSettings>
#include <QDir>
#include "passworddialog.h"
#include "dataformate.h"
#include <QDebug>
#include <QProcess>
#include "fescontroldialog.h"
#include "cmainwindow.h"
#include "languagemanager.h"
LoginWidget::LoginWidget(QDialog *parent) :
QDialog(parent),
ui(new Ui::LoginWidget),
passworldDialog(nullptr)
{
//PC版默认密码111111TV版默认密码666666
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);
//设置为模态对话框
// setModal(true);
connect(this,&LoginWidget::signalResult,this,&LoginWidget::done);
// setAttribute(Qt::WA_DeleteOnClose,true);
ui->userNameTips_Label->setVisible(false);
ui->passwordTips_Label->setVisible(false);
passworldDialog = new PasswordDialog();
m_shutdownDialog = new ShutdeonDialog();
ui->password_LineEdit->setEchoMode(QLineEdit::Password);
// ui->password_LineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
ui->remember_RadioButton->setChecked(true);
QString dirPath = "./DependFile/conf/";
QDir confdir(dirPath);
if(!confdir.exists())
confdir.mkdir(dirPath);
QString confFile(dirPath + "remberIDconf.ini");
QSettings iniSetting(confFile, QSettings::IniFormat);
QString password = iniSetting.value("password").toString();
QString userName = iniSetting.value("userName").toString();
ui->userName_LineEdit->setText(userName);
ui->password_LineEdit->setText(password);
ui->forgetPasswordTips_Label->setVisible(false);
m_timer = new QTimer(this);
m_bleItem = new BLEItem();
connect(m_timer,SIGNAL(timeout()),this,SLOT(slotCleanTimes()));
// qDebug()<<"password"<< ui->userName_LineEdit->text()<<ui->password_LineEdit->text();
// connect(this,SIGNAL(signalCloseApp(),FesControlDialog::getInstance(),FesControlDialog::getInstance()->);
/*
#ifdef NORMALEXE
ui->label_2->setStyleSheet("border-image: url(:/DependFile/Source/login/upDown_limp.jpg);");
#endif
*/
#ifdef ONLYUPLIMP
ui->label_2->setStyleSheet("border-image: url(:/DependFile/Source/login/upLimp.png);");
#endif
#ifdef ONLYDOWNLIMP
ui->label_2->setStyleSheet("border-image: url(:/DependFile/Source/login/downLimp.png);");
#endif
}
LoginWidget::~LoginWidget()
{
if(passworldDialog)
delete passworldDialog;
if(m_shutdownDialog)
delete m_shutdownDialog;
if(m_bleItem)
delete m_bleItem;
delete ui;
}
void LoginWidget::slotShowCompleted()
{
this->close();
}
void LoginWidget::slotCleanTimes()
{
m_clockTime = 0;
}
void LoginWidget::on_forgetPassword_Btn_clicked()
{
//弹出提示框,告知获取密码的方式
ui->forgetPasswordTips_Label->setText(tr("请联系管理员获取初始密码"));
ui->forgetPasswordTips_Label->setVisible(true);
}
void LoginWidget::on_confirm_Btn_clicked()
{
QString dirPath = "./DependFile/conf/";
QDir confdir(dirPath);
if(!confdir.exists())
confdir.mkdir(dirPath);
QString confFile(dirPath + "IDconf.ini");
QSettings iniSetting(confFile, QSettings::IniFormat);
QString password = iniSetting.value("password").toString();
QString userName = iniSetting.value("userName").toString();
qDebug()<<userName<<password;
QString rememberConfFile(dirPath + "remberIDconf.ini");
QSettings remIniSetting(confFile, QSettings::IniFormat);
QString remPassword = iniSetting.value("password").toString();
QString remUserName = iniSetting.value("userName").toString();
if(ui->userName_LineEdit->text() != userName)
{
ui->userNameTips_Label->setVisible(true);
ui->userNameTips_Label->setText(tr("用户名输入错误"));
return;
}
if(ui->password_LineEdit->text() != password)
{
ui->passwordTips_Label->setVisible(true);
ui->passwordTips_Label->setText(tr("密码输入错误"));
return;
}
//设置返回值结果
emit signalResult(1);
if(ui->remember_RadioButton->isChecked())
{
QString confFile(dirPath + "remberIDconf.ini");
QSettings iniSetting(confFile, QSettings::IniFormat);
iniSetting.setValue("password",ui->password_LineEdit->text());
iniSetting.setValue("userName",ui->userName_LineEdit->text());
}
}
void LoginWidget::on_userName_LineEdit_textChanged(const QString &arg1)
{
Q_UNUSED(arg1)
ui->userNameTips_Label->setVisible(false);
ui->forgetPasswordTips_Label->setVisible(false);
}
void LoginWidget::on_password_LineEdit_textChanged(const QString &arg1)
{
Q_UNUSED(arg1)
ui->passwordTips_Label->setVisible(false);
ui->forgetPasswordTips_Label->setVisible(false);
}
void LoginWidget::changeEvent(QEvent* event)
{
switch (event->type())
{
case QEvent::LanguageChange:
{
ui->retranslateUi(this);
}
break;
default:
QWidget::changeEvent(event);
break;
}
m_clockTime = 0;
}
void LoginWidget::showEvent(QShowEvent *event)
{
Q_UNUSED(event)
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
if(language == Chinese_E)
{
ui->company_Label->setStyleSheet("border-image: url(:/DependFile/Source/login/company.png);");
QFont font;
font.setFamily("黑体");
font.setPointSize(18);
ui->productionName_Label->setFont(font);
}
//
else if(language == English_E)
{
ui->company_Label->setStyleSheet("border-image: url(:/DependFile/Source/login/company_En.png);");
//
QFont font;
font.setFamily("Arial");
font.setPointSize(18);
ui->productionName_Label->setFont(font);
}
}
void LoginWidget::on_pushButton_clicked()
{
m_shutdownDialog->exec(); //关闭窗口
qDebug()<<"关机值:"<< m_shutdownDialog->getResult();
if(m_shutdownDialog->getResult() == 0)
return;
else
{
FesControlDialog::getInstance()->turnoffDevice(1,1);
Sleep(100);
// FesControlDialog::getInstance()->turnoffDevice(1,1);
QCoreApplication::quit(); //关闭程序
Sleep(3500); //睡眠
}
// emit signalCloseWindow();
/*
QString program = "C:/WINDOWS/system32/shutdown.exe";
QStringList arguments;
arguments << "-s";
QProcess *myProcess = new QProcess();
myProcess->start(program,arguments);
*/
system("shutdown -s -t 00");
}
void LoginWidget::on_company_Label_clicked()
{
m_clockTime++;
if(m_clockTime == 1)
m_timer->start(5000);
qDebug()<<m_clockTime;
if(m_clockTime == 10)
{
//m_bleItem->setDeviceState(false);
FesControlDialog::getInstance()->turnoffDevice(1,1);
Sleep(100);
// emit signalCloseApp();
//FesControlDialog::getInstance()->turnoffDevice(1,1);
QApplication *app;
app->exit(0);
this->close();
//关闭所有设备
//FesControlDialog::getInstance()->turnoffDevice(1,1);
//emit signalCloseApp();
}
}