#include "SystemSetForm.h" #include "ui_SystemSetForm.h" #include "DataMng.h" #include "DogCheck.h" #include "SetupFunc.h" #include "pub_utility_api/FileUtil.h" #include "pub_utility_api/I18N.h" #include "../include/sys/sys_login_api/CLoginDlg.h" #include "ModifyButtonForm.h" #include #include #include #include #include #include using namespace workBench; SystemSetForm::SystemSetForm(QWidget *parent) : QWidget(parent), ui(new Ui::SystemSetForm), m_groupBtn(Q_NULLPTR) { ui->setupUi(this); m_language = iot_public::getCurLanguage().c_str(); initView(); initConn(); ui->tabWidget->setCurrentIndex(1); ui->mainPathValue->installEventFilter(this); ui->backPathValue->installEventFilter(this); } SystemSetForm::~SystemSetForm() { delete ui; } void SystemSetForm::setAuthorityLabelText(int model) { switch (model) { case 0: ui->lbl_active_state->setText(tr("未检测")); break; case 1: ui->lbl_active_state->setText(tr("未激活")); break; case 2: ui->lbl_active_state->setText(tr("已激活")); break; default: ui->lbl_active_state->setText(tr("未检测")); break; } } void SystemSetForm::linkActive(const QString &link) { LOGDEBUG("SystemSetForm:%s",link.toStdString().c_str()); QDesktopServices::openUrl(QUrl("file:///"+link,QUrl::TolerantMode)); } void SystemSetForm::slotActiveBtnClicked() { DogCheck dogCheck(this); dogCheck.exec(); } void SystemSetForm::slotCheckBoxSelfStart(int state) { QString text = ""; QString strErr; if( Qt::Checked == state && !m_isSys) { if(iot_sys::regSysService(strErr)) { text+=tr("设置系统开机自启动成功..."); } else { text+=tr("设置系统开机自启动失败...错误:%1").arg(strErr); } emit sigLogText(text); }else if( Qt::Unchecked == state && m_isSys) { if(iot_sys::unregSysService(strErr)) { text+=tr("注销系统开机自启动成功..."); } else { text+=tr("注销系统开机自启动失败......错误:%1").arg(strErr); } emit sigLogText(text); } } void SystemSetForm::slotBtnModifyClicked() { ModifyButtonForm form(m_language , this); if( QDialog::Accepted == form.exec()) { emit signalUpdataPage1(EN_SYS_STARTUP_PAGE1); } } void SystemSetForm::slotBtnChangeClicked() { //自启动 slotCheckBoxSelfStart(ui->checkBox_selfStart->checkState()); //语言 int id = m_groupBtn->checkedId(); QString logStr,language = ""; switch (id) { case 0: language = "zh"; break; case 1: language = "en"; break; case 2: language = "fr"; break; default: return; } if( DataMng::instance()->modifyLanguageXml(language) ) { logStr += tr("切换成功!请重启该软件"); }else { logStr += tr("切换失败..请稍后再试"); } emit sigLogText(logStr); } bool SystemSetForm::eventFilter(QObject *watched, QEvent *event) { Q_UNUSED(watched); QEvent::Type type = event->type(); switch (type) { case QEvent::MouseButtonDblClick: { if ( ui->mainPathValue == static_cast(watched) ) { showInFolder(ui->mainPathValue->text()); }else if( ui->backPathValue == static_cast(watched) ) { showInFolder(ui->backPathValue->text()); } } break; default: return false; } return true; } void SystemSetForm::initView() { QMap versionMap = DataMng::instance()->getVersionInfo(); ui->label->setProperty("type" , "titleComm" ); ui->label_title->setProperty("type" , "titleComm" ); ui->label_title2->setProperty("type" , "titleComm" ); ui->versionValue->setText(versionMap.value(QString::fromStdString(SOFTWARE_VERSION),tr("无版本信息"))); ui->mainValue->setText(versionMap.value(QString::fromStdString(SOFTWARE_ISMAIN),"0") == "1" ? tr("已安装"):tr("未安装")); ui->dbValue->setText(versionMap.value(QString::fromStdString(SOFTWARE_ISDB),"0") == "1" ? tr("已安装"):tr("未安装")); ui->webValue->setText(versionMap.value(QString::fromStdString(SOFTWARE_ISWEB),"0") == "1" ? tr("已安装"):tr("未安装")); const std::string strFileName = "hmi_explorer.bat"; QString strPath = QString::fromStdString( iot_public::CFileUtil::getPathOfBinDir(CN_DIR_PLATFORM)); QDir pathFile(strPath); pathFile.cdUp(); pathFile.cdUp(); ui->mainPathValue->setText(pathFile.absolutePath()); if( pathFile.cd("backup")) { ui->backPathValue->setText(pathFile.absolutePath()); }else { ui->backPathValue->setText(tr("暂无")); } if(versionMap.value(QString::fromStdString(SOFTWARE_ISDB),"0") == "0") { ui->dbPathValue->setText(tr("无数据库路径")); }else { //#ifdef OS_WINDOWS // ui->dbPathValue->setText(versionMap.value(QString::fromStdString(SOFTWARE_DBPATH))); //#endif //#ifdef OS_LINUX ui->dbPathKey->setVisible(false); ui->dbPathValue->setVisible(false); adjustSize(); //ui->db_layout->setVisible(false); //#endif } QString strSysErr; m_isSys = false; m_isSys = iot_sys::isSysService(strSysErr); ui->checkBox_selfStart->setChecked(m_isSys); m_groupBtn = new QButtonGroup(this); m_groupBtn->addButton(ui->checkBox_chinese , 0); m_groupBtn->addButton(ui->checkBox_english , 1); m_groupBtn->addButton(ui->checkBox_fr , 2); if( m_language == "zh"){ ui->checkBox_chinese->setChecked(true); }else if( m_language == "en"){ ui->checkBox_english->setChecked(true); }else if( m_language == "fr"){ ui->checkBox_fr->setChecked(true); } } void SystemSetForm::initConn() { connect(ui->btn_active , &QToolButton::clicked , this , &SystemSetForm::slotActiveBtnClicked); connect(ui->btn_modeify , &QToolButton::clicked , this , &SystemSetForm::slotBtnModifyClicked); connect(ui->btn_change , &QToolButton::clicked , this , &SystemSetForm::slotBtnChangeClicked); } void SystemSetForm::showInFolder(const QString &path) { //initView(); QFileInfo info(path); #if defined(Q_OS_WIN) QStringList args; if (!info.isDir()) args << "/select,"; args << QDir::toNativeSeparators(path); if (QProcess::startDetached("explorer", args)) return; #endif QDesktopServices::openUrl(QUrl::fromLocalFile(info.isDir()? path : info.path())); }