123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- #include "setinfowidget.h"
- #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<BasicWidget*>(ui->tabWidget->widget(0));
- if(basicWidget)
- {
- basicWidget->setWebAPI(m_fromWebAPI);
- }
- /* 设置ai对比项的webapi指针 */
- AICompareWidget* aiCompareWidget = qobject_cast<AICompareWidget*>(ui->tabWidget->widget(1));
- if(aiCompareWidget)
- {
- aiCompareWidget->setWebAPI(m_fromWebAPI);
- }
- /* 设置噪音检测的webapi */
- NoiseWidget* noiseWidget = qobject_cast<NoiseWidget*>(ui->tabWidget->widget(2));
- if(noiseWidget)
- {
- noiseWidget->setWebAPI(m_fromWebAPI);
- }
- /* 设置数据库配置的WebAPI */
- DatabaseWidget* databaseWidget = qobject_cast<DatabaseWidget*>(ui->tabWidget->widget(3));
- if(databaseWidget)
- {
- databaseWidget->setWebAPI(m_fromWebAPI);
- }
- /* 设置检测时段的WebAPI */
- CheckPeriodWidget* checkPeriodWidget = qobject_cast<CheckPeriodWidget*>(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<CheckPeriodWidget*>(currentWidget);
- if(checkPeriodWidget)
- {
- checkPeriodWidget->updateCompareItemList(CIData.getCompareItemList());
- }
- }
- break;
- default:
- break;
- }
- }
- /* 保存数据 */
- void SetInfoWidget::saveData()
- {
- /* 获取当前页的编号 */
- int currentIndex = ui->tabWidget->currentIndex();
- QWidget* currentWidget = ui->tabWidget->currentWidget();
-
- bool isSuccess = false;
- switch(currentIndex)
- {
- case 0: /* 基础信息 */
- {
- BasicWidget* widget = qobject_cast<BasicWidget*>(currentWidget);
- if(widget)
- {
- /* 保存基础信息 */
- isSuccess = widget->saveBasicInfo();
- }
- }
- break;
- case 1: /* 对比项 */
- {
- AICompareWidget* widget = qobject_cast<AICompareWidget*>(currentWidget);
- if(widget)
- {
- /* 保存对比项信息 */
- isSuccess = widget->saveConfig();
- }
- }
- break;
- case 2: /* 噪音检测 */
- {
- NoiseWidget* widget = qobject_cast<NoiseWidget*>(currentWidget);
- if(widget)
- {
- /* 保存噪音检测信息 */
- isSuccess = widget->saveConfig();
- }
- }
- break;
- case 3: /* 数据库 */
- {
- DatabaseWidget* widget = qobject_cast<DatabaseWidget*>(currentWidget);
- if(widget)
- {
- /* 保存数据库信息 */
- isSuccess = widget->saveParams();
- }
- }
- break;
- case 4: /* 检测时段 */
- {
- CheckPeriodWidget* widget = qobject_cast<CheckPeriodWidget*>(currentWidget);
- if(widget)
- {
- /* 保存检测时段信息 */
- isSuccess = widget->saveSettings();
- }
- }
- break;
- default:
- break;
- }
- if(isSuccess)
- {
- /* 保存成功 */
- TipWidget::display(TipWidget::OPERATOR_OK, "设置保存成功", GInfo.getTopWindow());
- }else {
- /* 保存失败 */
- TipWidget::display(TipWidget::OPERATOR_FAIL, "设置保存失败", GInfo.getTopWindow());
- }
- }
|