12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #include "aicomparewidget.h"
- #include "ui_aicomparewidget.h"
- #include <QIntValidator>
- #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));
- /* 设置输入栏的弱提示符 */
- ui->lineEdit_length->setPlaceholderText("请输入, 限制1-120秒");
- /* 隐藏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);
- }
|