aicomparewidget.cpp 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. ui->lineEdit_length->setPlaceholderText("请输入, 限制1-120秒");
  22. /* 隐藏AI对比目录,不需要了 */
  23. ui->lineEdit_dir->hide();
  24. ui->label_2->hide();
  25. /* 设置初始化的参数 */
  26. do_pBtn_restore_clicked();
  27. /* 连接信号和槽 */
  28. connect(ui->pBtn_restore, &QPushButton::clicked, this, &AICompareWidget::do_pBtn_restore_clicked);
  29. /* 设置样式 */
  30. UIStyle.registerWidget(this);
  31. }
  32. AICompareWidget::~AICompareWidget()
  33. {
  34. UIStyle.unregisterWidget(this);
  35. delete ui;
  36. }
  37. /* 保存配置项 */
  38. bool AICompareWidget::saveConfig()
  39. {
  40. AICompareConfig_t aiConfig;
  41. aiConfig.nAiComputeDuration = ui->lineEdit_length->text().toInt();
  42. aiConfig.strAiCompareDir = ui->lineEdit_dir->text();
  43. /* 和历史数据进行对比 */
  44. const AICompareConfig_t &oldConfig = SysConfig.getAICompareConfig();
  45. if(aiConfig == oldConfig)
  46. {
  47. SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置没有变化,不需要更新");
  48. return true;
  49. }
  50. /* 将AI对比配置转换成json */
  51. std::string strJson;
  52. if(!SysConfig.setAICompareConfigToJson(aiConfig, strJson))
  53. {
  54. SPDLOG_LOGGER_ERROR(m_logger, "设置AI对比配置转换成JSON失败");
  55. return false;
  56. }
  57. /* 更新数据库信息 */
  58. if(!m_fromWebAPI->updateSystemConfig(Config_CompareAI, strJson, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_CompareAI]))
  59. {
  60. SPDLOG_LOGGER_ERROR(m_logger, "更新AI对比配置失败");
  61. return false;
  62. }
  63. /* 更新系统设置 */
  64. SysConfig.setAICompareConfig(aiConfig);
  65. SPDLOG_LOGGER_DEBUG(m_logger, "AI对比配置更新成功");
  66. return true;
  67. }
  68. /* 恢复配置项 */
  69. void AICompareWidget::do_pBtn_restore_clicked()
  70. {
  71. const AICompareConfig_t &aiConfig = SysConfig.getAICompareConfig();
  72. ui->lineEdit_length->setText(QString::number(aiConfig.nAiComputeDuration));
  73. ui->lineEdit_dir->setText(aiConfig.strAiCompareDir);
  74. }