You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
6.3 KiB
C++

#include "lpConfigUI.h"
#include <lpConfig.h>
#include <QFileDialog>
#include <QApplication>
#include <QStandardPaths>
#include <QSettings>
#pragma execution_character_set("utf-8")
/*ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>*/
const QString gStrAppName = "ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λϵͳ";
lpConfigUI::lpConfigUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
setWindowIcon(QIcon(":/Resources/icon.png"));
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
connect(ui.pushButton_4, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
ui.label_5->setVisible(false);
onInitCheckBox();
connect(ui.checkBox_AutoRun, SIGNAL(stateChanged(int)), this, SLOT(onCheckBoxChanged(int)));
connect(ui.checkBox_DesktopShort, SIGNAL(stateChanged(int)), this, SLOT(onCheckBoxChanged(int)));
ui.comboBox->clear();
ui.comboBox->addItem(tr("Chinese"), "Chinese");
ui.comboBox->addItem(tr("English"), "English");
}
lpConfigUI::~lpConfigUI()
{
}
Q_SLOT void lpConfigUI::onButtonClicked()
{
QString strObj = sender()->objectName();
if ("pushButton" == strObj)
{
QString strUrl = QFileDialog::getOpenFileName(this, "", "", "*.exe");
if (strUrl.isEmpty())
return;
ui.lineEdit_APath->setText(strUrl);
}
else if ("pushButton_2" == strObj)
{
QString strUrl = QFileDialog::getOpenFileName(this, "", "", "*.exe");
if (strUrl.isEmpty())
return;
ui.lineEdit_BPath->setText(strUrl);
}
else if ("pushButton_3" == strObj)
{
lpConfig::instance()->appPathA = ui.lineEdit_APath->text();
lpConfig::instance()->appPathB = ui.lineEdit_BPath->text();
lpConfig::instance()->portA = ui.lineEdit_APort->text().toInt();
lpConfig::instance()->portB = ui.lineEdit_BPort->text().toInt();
lpConfig::instance()->doubleStation = ui.checkBox_doubleStation->isChecked();
lpConfig::instance()->plcServerPort = ui.lineEdit_serverPort->text().toInt();
lpConfig::instance()->saveConfig();
ui.label_5->setVisible(true);
m_timerID = startTimer(1000);
QString strLanguage = ui.comboBox->currentText();
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
languageSetting.setValue("language", strLanguage);
emit sgLanguageChange(strLanguage);
emit sgUpdateConfig();
}
else if ("pushButton_4" == strObj)
{
this->close();
}
}
void lpConfigUI::showEvent(QShowEvent *event)
{
ui.lineEdit_APath->setText(lpConfig::instance()->appPathA);
ui.lineEdit_BPath->setText(lpConfig::instance()->appPathB);
ui.lineEdit_APort->setText(QString("%1").arg(lpConfig::instance()->portA));
ui.lineEdit_BPort->setText(QString("%1").arg(lpConfig::instance()->portB));
ui.checkBox_doubleStation->setChecked(lpConfig::instance()->doubleStation);
ui.lineEdit_serverPort->setText(QString("%1").arg(lpConfig::instance()->plcServerPort));
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLanguage = languageSetting.value("language", "Chinese").toString();
ui.comboBox->setCurrentText(strLanguage);
}
void lpConfigUI::timerEvent(QTimerEvent *event)
{
if (m_timerID == event->timerId())
{
killTimer(m_timerID);
m_timerID = 0;
ui.label_5->setVisible(false);
}
}
void lpConfigUI::changeEvent(QEvent *event)
{
if (event->type() == QEvent::LanguageChange)
{
ui.retranslateUi(this);
}
}
void lpConfigUI::onInitCheckBox()
{
bool bAutoRun = CheckAutoRunLink();
if (bAutoRun == true)
{
ui.checkBox_AutoRun->setChecked(true);
}
else {
ui.checkBox_AutoRun->setChecked(false);
}
bool bDesktop = CheckDesktopLink();
if (bDesktop == true)
{
ui.checkBox_DesktopShort->setChecked(true);
}
else
{
ui.checkBox_DesktopShort->setChecked(false);
}
}
Q_SLOT void lpConfigUI::onCheckBoxChanged(int state)
{
QString strObj = sender()->objectName();
if ("checkBox_AutoRun" == strObj)
{
if (state == 0)
{
RemoveAutoRunLink();
}
else {
CreateAutoRunLink();
}
}
else if ("checkBox_DesktopShort" == strObj)
{
if (state == 0)
{
RemoveDesktopLink();
}
else {
CreateDesktopLink();
}
}
}
bool lpConfigUI::CheckDesktopLink()
{
QString strDesktopLink = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/";
strDesktopLink += gStrAppName + ".lnk";
QFileInfo dir(strDesktopLink);
return dir.isFile();
}
void lpConfigUI::CreateDesktopLink()
{
QString strAppPath = QCoreApplication::applicationFilePath();//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ<EFBFBD><CABD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
QFile fApp(strAppPath);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ
QString strDesktopLink = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/";
strDesktopLink += gStrAppName + ".lnk";
QFileInfo dir(strDesktopLink);
//if (!dir.isFile())
{
fApp.link(strDesktopLink);
}
}
void lpConfigUI::RemoveDesktopLink()
{
QString strAppPath = QCoreApplication::applicationFilePath();//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ<EFBFBD><CABD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
QFile fApp(strAppPath);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ
QString strDesktopLink = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/";
strDesktopLink += gStrAppName + ".lnk";
QFileInfo dir(strDesktopLink);
//if (!dir.isFile())
{
fApp.remove(strDesktopLink);
}
}
bool lpConfigUI::CheckAutoRunLink()
{
QString strMenuLink = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/";
strMenuLink += "Startup/";
QDir pathDir;
pathDir.mkpath(strMenuLink);
strMenuLink += gStrAppName + ".lnk";
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD>
QFileInfo dir(strMenuLink);
return dir.isFile();
}
void lpConfigUI::CreateAutoRunLink()
{
QString strAppPath = QCoreApplication::applicationFilePath();//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ<EFBFBD><CABD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
QFile fApp(strAppPath);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ
QString strMenuLink = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/";
strMenuLink += "Startup/";
QDir pathDir;
pathDir.mkpath(strMenuLink);
strMenuLink += gStrAppName + ".lnk";
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD>
QFileInfo dir(strMenuLink);
//if (!dir.isFile())
{
fApp.link(strMenuLink);
}
}
void lpConfigUI::RemoveAutoRunLink()
{
QString strAppPath = QCoreApplication::applicationFilePath();//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ<EFBFBD><CABD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
QFile fApp(strAppPath);
QString strMenuLink = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation) + "/";
strMenuLink += "Startup/";
QDir pathDir;
pathDir.mkpath(strMenuLink);
strMenuLink += gStrAppName + ".lnk";
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ѵ<EFBFBD><D1B4><EFBFBD>
QFileInfo dir(strMenuLink);
//if (!dir.isFile())
{
fApp.remove(strMenuLink);
}
}