databasewidget.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include "databasewidget.h"
  2. #include "ui_databasewidget.h"
  3. #include "SystemConfig.h"
  4. #include "UIStyleManager.h"
  5. #include "FromWebAPI.h"
  6. #include <QIntValidator>
  7. DatabaseWidget::DatabaseWidget(QWidget *parent) :
  8. QWidget(parent),
  9. ui(new Ui::DatabaseWidget)
  10. {
  11. ui->setupUi(this);
  12. m_logger = spdlog::get("ACASetting");
  13. if(m_logger == nullptr)
  14. {
  15. fmt::print("DatabaseWidget: Logger ACASetting not found\n");
  16. return;
  17. }
  18. /* 限制输入栏输入格式 */
  19. ui->lineEdit_recordLogRetain->setValidator(new QIntValidator(1, 360, this));
  20. ui->lineEdit_operatorLOgRetain->setValidator(new QIntValidator(1, 360, this));
  21. ui->lineEdit_recordFileRetain->setValidator(new QIntValidator(1, 24, this));
  22. ui->lineEdit_clientPort->setValidator(new QIntValidator(1, 65535, this));
  23. ui->lineEdit_listenPort->setValidator(new QIntValidator(1, 65535, this));
  24. /* 获取初始配置 */
  25. do_pBtn_restore_clicked();
  26. /* 连接信号和槽 */
  27. connect(ui->btnRestore, &QPushButton::clicked, this, &DatabaseWidget::do_pBtn_restore_clicked);
  28. UIStyle.registerWidget(this);
  29. }
  30. DatabaseWidget::~DatabaseWidget()
  31. {
  32. UIStyle.unregisterWidget(this);
  33. delete ui;
  34. }
  35. /* 保存参数 */
  36. bool DatabaseWidget::saveParams()
  37. {
  38. m_databaseConfig.nRecordLogRetain = ui->lineEdit_recordLogRetain->text().toInt();
  39. m_databaseConfig.nOperatorLogRetain = ui->lineEdit_operatorLOgRetain->text().toInt();
  40. m_databaseConfig.nRecordFileRetain = ui->lineEdit_recordFileRetain->text().toInt();
  41. m_databaseConfig.nClientPort = ui->lineEdit_clientPort->text().toInt();
  42. m_databaseConfig.nListenPort = ui->lineEdit_listenPort->text().toInt();
  43. m_databaseConfig.strRecordFilePath = ui->lineEdit_recordFilePath->text();
  44. /* 和旧数据对比 */
  45. const DatabaseConfig_t& oldConfig = SysConfig.getDatabaseConfig();
  46. if(m_databaseConfig == oldConfig)
  47. {
  48. SPDLOG_LOGGER_DEBUG(m_logger, "数据库配置信息没有修改");
  49. return true;
  50. }
  51. /* 生成json文件 */
  52. std::string jsonStr;
  53. if(!SysConfig.setDatabaseConfigToJson(m_databaseConfig, jsonStr))
  54. {
  55. SPDLOG_LOGGER_ERROR(m_logger, "数据库配置转换成json失败");
  56. return false;
  57. }
  58. /* 写入到数据库 */
  59. if(!m_fromWebAPI->updateSystemConfig(Config_Database, jsonStr, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_Database]))
  60. {
  61. SPDLOG_LOGGER_ERROR(m_logger, "更新数据库配置失败");
  62. return false;
  63. }
  64. /* 设置数据库配置 */
  65. SysConfig.setDatabaseConfig(m_databaseConfig);
  66. SPDLOG_LOGGER_DEBUG(m_logger, "数据库配置信息保存成功");
  67. return true;
  68. }
  69. /* 恢复配置项 */
  70. void DatabaseWidget::do_pBtn_restore_clicked()
  71. {
  72. m_databaseConfig = SysConfig.getDatabaseConfig();
  73. ui->lineEdit_recordLogRetain->setText(QString::number(m_databaseConfig.nRecordLogRetain));
  74. ui->lineEdit_operatorLOgRetain->setText(QString::number(m_databaseConfig.nOperatorLogRetain));
  75. ui->lineEdit_recordFileRetain->setText(QString::number(m_databaseConfig.nRecordFileRetain));
  76. ui->lineEdit_clientPort->setText(QString::number(m_databaseConfig.nClientPort));
  77. ui->lineEdit_listenPort->setText(QString::number(m_databaseConfig.nListenPort));
  78. ui->lineEdit_recordFilePath->setText(m_databaseConfig.strRecordFilePath);
  79. }