#include "setinfowidget.h" #include #include "CompareItemData.h" #include "ui_setinfowidget.h" #include "UIStyleManager.h" #include "tipwidget.h" #include "GlobalInfo.h" SetInfoWidget::SetInfoWidget(QWidget *parent) : QWidget(parent), ui(new Ui::SetInfoWidget) { ui->setupUi(this); /* 连接信号和槽 */ connect(ui->pBtn_save, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_save_clicked); connect(ui->pBtn_cancel, &QPushButton::clicked, this, &SetInfoWidget::do_pBtn_cancel_clicked); connect(ui->tabWidget, &QTabWidget::currentChanged, this, &SetInfoWidget::do_tabWidget_currentChanged); /* 设置样式表 */ UIStyle.registerWidget(this); } SetInfoWidget::~SetInfoWidget() { /* 注销样式表 */ UIStyle.unregisterWidget(this); delete ui; } /* 设置WebAPI */ void SetInfoWidget::setWebAPI(FromWebAPI* api) { m_fromWebAPI = api; /* 设置BasicWidget的WebAPI */ BasicWidget* basicWidget = qobject_cast(ui->tabWidget->widget(0)); if(basicWidget) { basicWidget->setWebAPI(m_fromWebAPI); } /* 设置ai对比项的webapi指针 */ AICompareWidget* aiCompareWidget = qobject_cast(ui->tabWidget->widget(1)); if(aiCompareWidget) { aiCompareWidget->setWebAPI(m_fromWebAPI); } /* 设置噪音检测的webapi */ NoiseWidget* noiseWidget = qobject_cast(ui->tabWidget->widget(2)); if(noiseWidget) { noiseWidget->setWebAPI(m_fromWebAPI); } /* 设置数据库配置的WebAPI */ DatabaseWidget* databaseWidget = qobject_cast(ui->tabWidget->widget(3)); if(databaseWidget) { databaseWidget->setWebAPI(m_fromWebAPI); } /* 设置检测时段的WebAPI */ CheckPeriodWidget* checkPeriodWidget = qobject_cast(ui->tabWidget->widget(4)); if(checkPeriodWidget) { checkPeriodWidget->setWebAPI(m_fromWebAPI); } } /* 保存按钮 */ void SetInfoWidget::do_pBtn_save_clicked() { saveData(); } /* 取消按钮 */ void SetInfoWidget::do_pBtn_cancel_clicked() { } /* 切换了页面 */ void SetInfoWidget::do_tabWidget_currentChanged(int index) { /* 获取当前页的编号 */ QWidget* currentWidget = ui->tabWidget->currentWidget(); if(currentWidget == nullptr) { return; } /* 根据当前页的编号执行不同的操作 */ switch(index) { case 0: // 基础信息 break; case 1: // 对比项 break; case 2: // 噪音检测 break; case 3: // 数据库 break; case 4: // 检测时段 { /* 设置对比项到可选列表中 */ CheckPeriodWidget* checkPeriodWidget = qobject_cast(currentWidget); if(checkPeriodWidget) { checkPeriodWidget->updateCompareItemList(CIData.getCompareItemList()); } } break; default: break; } } /* 保存数据,这个是保存所有的数据 */ bool SetInfoWidget::saveData() { bool isSuccess = true; /* 保存基础信息 */ if(!ui->tabBasic->saveBasicInfo()) { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "基础信息保存失败", GInfo.getTopWindow()); isSuccess = false; } /* 保存AI对比信息 */ if(!ui->tabAICompare->saveConfig()) { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "AI对比信息保存失败", GInfo.getTopWindow()); isSuccess = false; } /* 保存噪音检测信息 */ if(!ui->tabNoiseCheck->saveConfig()) { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "噪音检测信息保存失败", GInfo.getTopWindow()); isSuccess = false; } /* 保存数据库信息 */ if(!ui->tabDatabase->saveParams()) { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "数据库信息保存失败", GInfo.getTopWindow()); isSuccess = false; } /* 保存检测时段信息 */ if(!ui->tabCheckPeriod->saveSettings()) { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "检测时段信息保存失败", GInfo.getTopWindow()); isSuccess = false; } if(isSuccess) { /* 保存成功 */ TipWidget::display(TipWidget::OPERATOR_OK, "设置保存成功", GInfo.getTopWindow()); }else { /* 保存失败 */ TipWidget::display(TipWidget::OPERATOR_FAIL, "设置保存失败", GInfo.getTopWindow()); } return isSuccess; }