aicomparewidget.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "aicomparewidget.h"
  2. #include "ui_aicomparewidget.h"
  3. #include <QIntValidator>
  4. #include "UIStyleManager.h"
  5. #include "SystemConfig.h"
  6. #include "FromWebAPI.h"
  7. AICompareWidget::AICompareWidget(QWidget *parent) :
  8. QWidget(parent),
  9. ui(new Ui::AICompareWidget)
  10. {
  11. ui->setupUi(this);
  12. m_logger = spdlog::get("ACASetting");
  13. if(m_logger == nullptr)
  14. {
  15. fmt::print("AICompareWidget: Logger ACAServer not found\n");
  16. return;
  17. }
  18. /* 设置 lineEdit_length 只能输入数字 */
  19. ui->lineEdit_length->setValidator(new QIntValidator(1, 120, this));
  20. /* 设置初始化的参数 */
  21. const AICompareConfig_t &aiConfig = SysConfig.getAICompareConfig();
  22. ui->lineEdit_length->setText(QString::number(aiConfig.nAiComputeDuration));
  23. ui->lineEdit_dir->setText(aiConfig.strAiCompareDir);
  24. /* 设置样式 */
  25. UIStyle.registerWidget(this);
  26. }
  27. AICompareWidget::~AICompareWidget()
  28. {
  29. UIStyle.unregisterWidget(this);
  30. delete ui;
  31. }
  32. /* 保存配置项 */
  33. bool AICompareWidget::saveConfig()
  34. {
  35. AICompareConfig_t aiConfig;
  36. aiConfig.nAiComputeDuration = ui->lineEdit_length->text().toInt();
  37. aiConfig.strAiCompareDir = ui->lineEdit_dir->text();
  38. /* 和历史数据进行对比 */
  39. const AICompareConfig_t &oldConfig = SysConfig.getAICompareConfig();
  40. if(aiConfig == oldConfig)
  41. {
  42. SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置没有变化,不需要更新");
  43. return false;
  44. }
  45. /* 将AI对比配置转换成json */
  46. std::string strJson;
  47. if(!SysConfig.setAICompareConfigToJson(aiConfig, strJson))
  48. {
  49. SPDLOG_LOGGER_ERROR(m_logger, "设置AI对比配置转换成JSON失败");
  50. return false;
  51. }
  52. /* 更新数据库信息 */
  53. if(!m_fromWebAPI->updateSystemConfig(Config_CompareAI, strJson, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_CompareAI]))
  54. {
  55. SPDLOG_LOGGER_ERROR(m_logger, "更新AI对比配置失败");
  56. return false;
  57. }
  58. /* 更新系统设置 */
  59. SysConfig.setAICompareConfig(aiConfig);
  60. SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置更新成功");
  61. return true;
  62. }