123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #include "databasewidget.h"
- #include "ui_databasewidget.h"
- #include "SystemConfig.h"
- #include "UIStyleManager.h"
- #include "FromWebAPI.h"
- #include <QIntValidator>
- 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_recordLogRetain->setPlaceholderText("请输入, 限制1-360天");
- ui->lineEdit_operatorLogRetain->setValidator(new QIntValidator(1, 360, this));
- ui->lineEdit_operatorLogRetain->setPlaceholderText("请输入, 限制1-360天");
- ui->lineEdit_recordFileRetain->setValidator(new QIntValidator(1, 24, this));
- ui->lineEdit_recordFileRetain->setPlaceholderText("请输入, 限制1-24小时");
- ui->lineEdit_clientPort->setValidator(new QIntValidator(1, 65535, this));
- ui->lineEdit_clientPort->setPlaceholderText("请输入");
- ui->lineEdit_listenPort->setValidator(new QIntValidator(1, 65535, this));
- ui->lineEdit_listenPort->setPlaceholderText("请输入");
- ui->lineEdit_recordFilePath->setPlaceholderText("请输入,服务端录音文件存储路径");
- ui->lineEdit_ftpPath->setPlaceholderText("请输入,FTP报警文件路径");
- /* 获取初始配置 */
- do_pBtn_restore_clicked();
-
- /* 连接信号和槽 */
- connect(ui->pBtn_restore, &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();
- m_databaseConfig.strFtpPath = ui->lineEdit_ftpPath->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);
- }
|