#include "aicomparewidget.h" #include "ui_aicomparewidget.h" #include #include "UIStyleManager.h" #include "SystemConfig.h" #include "FromWebAPI.h" AICompareWidget::AICompareWidget(QWidget *parent) : QWidget(parent), ui(new Ui::AICompareWidget) { ui->setupUi(this); m_logger = spdlog::get("ACASetting"); if(m_logger == nullptr) { fmt::print("AICompareWidget: Logger ACAServer not found\n"); return; } /* 设置 lineEdit_length 只能输入数字 */ ui->lineEdit_length->setValidator(new QIntValidator(1, 120, this)); /* 隐藏AI对比目录,不需要了 */ ui->lineEdit_dir->hide(); ui->label_2->hide(); /* 设置初始化的参数 */ do_pBtn_restore_clicked(); /* 连接信号和槽 */ connect(ui->pBtn_restore, &QPushButton::clicked, this, &AICompareWidget::do_pBtn_restore_clicked); /* 设置样式 */ UIStyle.registerWidget(this); } AICompareWidget::~AICompareWidget() { UIStyle.unregisterWidget(this); delete ui; } /* 保存配置项 */ bool AICompareWidget::saveConfig() { AICompareConfig_t aiConfig; aiConfig.nAiComputeDuration = ui->lineEdit_length->text().toInt(); aiConfig.strAiCompareDir = ui->lineEdit_dir->text(); /* 和历史数据进行对比 */ const AICompareConfig_t &oldConfig = SysConfig.getAICompareConfig(); if(aiConfig == oldConfig) { SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置没有变化,不需要更新"); return true; } /* 将AI对比配置转换成json */ std::string strJson; if(!SysConfig.setAICompareConfigToJson(aiConfig, strJson)) { SPDLOG_LOGGER_ERROR(m_logger, "设置AI对比配置转换成JSON失败"); return false; } /* 更新数据库信息 */ if(!m_fromWebAPI->updateSystemConfig(Config_CompareAI, strJson, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_CompareAI])) { SPDLOG_LOGGER_ERROR(m_logger, "更新AI对比配置失败"); return false; } /* 更新系统设置 */ SysConfig.setAICompareConfig(aiConfig); SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置更新成功"); return true; } /* 恢复配置项 */ void AICompareWidget::do_pBtn_restore_clicked() { const AICompareConfig_t &aiConfig = SysConfig.getAICompareConfig(); ui->lineEdit_length->setText(QString::number(aiConfig.nAiComputeDuration)); ui->lineEdit_dir->setText(aiConfig.strAiCompareDir); }