#include "databasewidget.h" #include "ui_databasewidget.h" #include "SystemConfig.h" #include "UIStyleManager.h" #include "FromWebAPI.h" #include DatabaseWidget::DatabaseWidget(QWidget *parent) : QWidget(parent), ui(new Ui::DatabaseWidget) { ui->setupUi(this); m_logger = spdlog::get("ACASetting"); if(m_logger == nullptr) { fmt::print("DatabaseWidget: Logger ACASetting not found\n"); return; } /* 限制输入栏输入格式 */ ui->lineEdit_recordLogRetain->setValidator(new QIntValidator(1, 360, this)); ui->lineEdit_operatorLOgRetain->setValidator(new QIntValidator(1, 360, this)); ui->lineEdit_recordFileRetain->setValidator(new QIntValidator(1, 24, this)); ui->lineEdit_clientPort->setValidator(new QIntValidator(1, 65535, this)); ui->lineEdit_listenPort->setValidator(new QIntValidator(1, 65535, this)); /* 获取初始配置 */ do_pBtn_restore_clicked(); /* 连接信号和槽 */ connect(ui->btnRestore, &QPushButton::clicked, this, &DatabaseWidget::do_pBtn_restore_clicked); UIStyle.registerWidget(this); } DatabaseWidget::~DatabaseWidget() { UIStyle.unregisterWidget(this); delete ui; } /* 保存参数 */ bool DatabaseWidget::saveParams() { m_databaseConfig.nRecordLogRetain = ui->lineEdit_recordLogRetain->text().toInt(); m_databaseConfig.nOperatorLogRetain = ui->lineEdit_operatorLOgRetain->text().toInt(); m_databaseConfig.nRecordFileRetain = ui->lineEdit_recordFileRetain->text().toInt(); m_databaseConfig.nClientPort = ui->lineEdit_clientPort->text().toInt(); m_databaseConfig.nListenPort = ui->lineEdit_listenPort->text().toInt(); m_databaseConfig.strRecordFilePath = ui->lineEdit_recordFilePath->text(); /* 和旧数据对比 */ const DatabaseConfig_t& oldConfig = SysConfig.getDatabaseConfig(); if(m_databaseConfig == oldConfig) { SPDLOG_LOGGER_DEBUG(m_logger, "数据库配置信息没有修改"); return true; } /* 生成json文件 */ std::string jsonStr; if(!SysConfig.setDatabaseConfigToJson(m_databaseConfig, jsonStr)) { SPDLOG_LOGGER_ERROR(m_logger, "数据库配置转换成json失败"); return false; } /* 写入到数据库 */ if(!m_fromWebAPI->updateSystemConfig(Config_Database, jsonStr, SysConfig.mapSysConfigDesc[eSystemConfigType::eSCT_Database])) { SPDLOG_LOGGER_ERROR(m_logger, "更新数据库配置失败"); return false; } /* 设置数据库配置 */ SysConfig.setDatabaseConfig(m_databaseConfig); SPDLOG_LOGGER_DEBUG(m_logger, "数据库配置信息保存成功"); return true; } /* 恢复配置项 */ void DatabaseWidget::do_pBtn_restore_clicked() { m_databaseConfig = SysConfig.getDatabaseConfig(); ui->lineEdit_recordLogRetain->setText(QString::number(m_databaseConfig.nRecordLogRetain)); ui->lineEdit_operatorLOgRetain->setText(QString::number(m_databaseConfig.nOperatorLogRetain)); ui->lineEdit_recordFileRetain->setText(QString::number(m_databaseConfig.nRecordFileRetain)); ui->lineEdit_clientPort->setText(QString::number(m_databaseConfig.nClientPort)); ui->lineEdit_listenPort->setText(QString::number(m_databaseConfig.nListenPort)); ui->lineEdit_recordFilePath->setText(m_databaseConfig.strRecordFilePath); }