Kaynağa Gözat

V0.3.7
1、修复了不能记忆录音通道的问题

Apple 3 gün önce
ebeveyn
işleme
48121dd221

+ 10 - 7
SettingLibrary/Modules/Basic/compareitemdialog.cpp

@@ -1,4 +1,5 @@
 #include "compareitemdialog.h"
+#include "GlobalVariable.h"
 #include "ui_compareitemwidget.h"
 
 #include "UIStyleManager.h"
@@ -52,6 +53,11 @@ CompareItemDialog::~CompareItemDialog()
 void CompareItemDialog::setSoundCardRoadList(const SoundCardInfo_t& soundCardInfo)
 {
     m_soundCardInfo = soundCardInfo;
+    // OneRoadInfo_t defaultRoad;
+    // defaultRoad.nRoadNum = 1;
+    // m_soundCardInfo.listRoad.push_back(defaultRoad);
+    // defaultRoad.nRoadNum = 2;
+    // m_soundCardInfo.listRoad.push_back(defaultRoad);
     /* 设置已有两个通道的可选录音通道 */
     ui->widget_mainRoad->setSoundCardRoadList(m_soundCardInfo);
     ui->widget_secondRoad->setSoundCardRoadList(m_soundCardInfo);
@@ -184,11 +190,8 @@ void CompareItemDialog::setQSS()
         SPDLOG_LOGGER_ERROR(m_logger, "打开QSS文件失败: {}", qssPath.toStdString());
         SPDLOG_LOGGER_ERROR(m_logger, "错误信息: {}", file.errorString().toStdString());
     }
-    /* 清除父类的qss */
-    // this->setStyleSheet("");
-    // SPDLOG_LOGGER_INFO(m_logger, "qss: {}", getContentWidget()->styleSheet().toStdString());
-    // ui->scrollArea->viewport()->setStyleSheet("background-color: #FFFFFF;"); // 设置滚动区域背景透明
 
+    /* 打开对比项通道的qss */
     file.setFileName(UIStyle.getQSSPath() + "/singlecompareroadwidget.qss");
     if(file.open(QFile::ReadOnly))
     {
@@ -199,8 +202,8 @@ void CompareItemDialog::setQSS()
         SPDLOG_LOGGER_ERROR(m_logger, "打开QSS文件失败: {}", file.fileName().toStdString());
         SPDLOG_LOGGER_ERROR(m_logger, "错误信息: {}", file.errorString().toStdString());
     }
-    ui->widget_mainRoad->setStyleSheet(m_qssRecordRoad);
-    ui->widget_secondRoad->setStyleSheet(m_qssRecordRoad);
+    ui->widget_mainRoad->setQSS(m_qssRecordRoad);
+    ui->widget_secondRoad->setQSS(m_qssRecordRoad);
 }
 
 /* 设置静音过载反相可编辑 */
@@ -282,7 +285,7 @@ SingleCompareRoadWidget* CompareItemDialog::addOneRoadWidget(int nIndex, bool bD
     pWgt->setDelBtnVisible(bDelBtnVisible);
     /* 设置可选通道列表 */
     pWgt->setSoundCardRoadList(m_soundCardInfo);
-    pWgt->setStyleSheet(m_qssRecordRoad);
+    pWgt->setQSS(m_qssRecordRoad);
     pLayout->insertWidget(m_listOtherRoadWgt.size(), pWgt);
     m_listOtherRoadWgt.append(pWgt);
     

+ 88 - 0
SettingLibrary/Modules/Basic/compareitemlistdialog.cpp

@@ -74,6 +74,8 @@ CompareItemListDialog::CompareItemListDialog(QWidget *parent) :
     connect(ui->pBtn_add, &QPushButton::clicked, this, &CompareItemListDialog::do_pBtn_add_Clicked);
     connect(ui->pBtn_delete, &QPushButton::clicked, this, &CompareItemListDialog::do_pBtn_delete_Clicked);
     connect(ui->pBtn_modify, &QPushButton::clicked, this, &CompareItemListDialog::do_pBtn_edit_Clicked);
+    connect(ui->pBtn_enableCPItem, &QPushButton::clicked, this, &CompareItemListDialog::do_pBtn_enable_Clicked);
+    connect(ui->pBtn_disableCPItem, &QPushButton::clicked, this, &CompareItemListDialog::do_pBtn_disable_Clicked);
 
     /* 初始化表格 */
     initTable();
@@ -205,6 +207,92 @@ void CompareItemListDialog::do_pBtn_edit_Clicked()
         SPDLOG_LOGGER_ERROR(m_logger, "对比项ID {} 修改失败", nID);
         return;
     }
+    /* 判断有没有修改启用状态 */
+    if(newCiInfo.isEnable != ciInfo.isEnable)
+    {
+        /* 如果启用状态有变化,更新表格中的状态 */
+        m_model->setData(m_model->index(index.row(), 1), newCiInfo.isEnable ? "启用" : "未启用");
+    }
+}
+
+/* 启用对比项 */
+void CompareItemListDialog::do_pBtn_enable_Clicked()
+{
+    /* 获取当前选中的行 */
+    QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedRows();
+    if(selectedRows.isEmpty())
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "请先选择要修改的对比项", GInfo.getTopWindow());
+        return;
+    }
+    /* 只取出第一个 */
+    QModelIndex index = selectedRows.first();
+    /* 获取对比项ID */
+    int nID = m_model->data(m_model->index(index.row(), 0), m_userRole_CompareItemID).toInt();
+    /* 查找对比项信息 */
+    CompareItemInfo_t ciInfo = CIData.findCompareItemByID(nID);
+    if(ciInfo.nID < 0)
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "对比项不存在,无法启用", GInfo.getTopWindow());
+        SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法启用", nID);
+        return;
+    }
+    /* 判断是否已经启用 */
+    if(ciInfo.isEnable)
+    {
+        TipWidget::display(TipWidget::OPERATOR_OK, "对比项已经处于启用状态", GInfo.getTopWindow());
+        return; /* 如果已经启用,直接返回 */
+    }
+    /* 修改对比项状态为启用 */
+    ciInfo.isEnable = true;
+    if(!CIData.modifyCompareItem(ciInfo))
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "对比项启用失败,请稍后重试", GInfo.getTopWindow());
+        SPDLOG_LOGGER_ERROR(m_logger, "对比项ID {} 启用失败", nID);
+        return;
+    }
+    /* 更新表格中的状态 */
+    m_model->setData(m_model->index(index.row(), 1), "启用");
+}
+
+/* 禁用对比项 */
+void CompareItemListDialog::do_pBtn_disable_Clicked()
+{
+    /* 获取当前选中的行 */
+    QModelIndexList selectedRows = ui->tableView->selectionModel()->selectedRows();
+    if(selectedRows.isEmpty())
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "请先选择要修改的对比项", GInfo.getTopWindow());
+        return;
+    }
+    /* 只取出第一个 */
+    QModelIndex index = selectedRows.first();
+    /* 获取对比项ID */
+    int nID = m_model->data(m_model->index(index.row(), 0), m_userRole_CompareItemID).toInt();
+    /* 查找对比项信息 */
+    CompareItemInfo_t ciInfo = CIData.findCompareItemByID(nID);
+    if(ciInfo.nID < 0)
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "对比项不存在,无法禁用", GInfo.getTopWindow());
+        SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法禁用", nID);
+        return;
+    }
+    /* 判断是否已经启用 */
+    if(!ciInfo.isEnable)
+    {
+        TipWidget::display(TipWidget::OPERATOR_OK, "对比项已经处于禁用状态", GInfo.getTopWindow());
+        return;
+    }
+    /* 修改对比项状态为启用 */
+    ciInfo.isEnable = false;
+    if(!CIData.modifyCompareItem(ciInfo))
+    {
+        TipWidget::display(TipWidget::OPERATOR_WARN, "对比项禁用失败,请稍后重试", GInfo.getTopWindow());
+        SPDLOG_LOGGER_ERROR(m_logger, "对比项ID {} 禁用失败", nID);
+        return;
+    }
+    /* 更新表格中的状态 */
+    m_model->setData(m_model->index(index.row(), 1), "未启用");
 }
 
 /* 初始化表格 */

+ 5 - 0
SettingLibrary/Modules/Basic/compareitemlistdialog.h

@@ -59,6 +59,11 @@ private slots:
     /* 点击了编辑按钮 */
     void do_pBtn_edit_Clicked();
 
+    /* 启用对比项 */
+    void do_pBtn_enable_Clicked();
+    /* 禁用对比项 */
+    void do_pBtn_disable_Clicked();
+
 private:
     /* 初始化表格 */
     void initTable();

+ 26 - 10
SettingLibrary/Modules/Basic/singlecompareroadwidget.cpp

@@ -11,7 +11,7 @@ SingleCompareRoadWidget::SingleCompareRoadWidget(QWidget *parent)
     ui->setupUi(this);
 
     /* 设置comboBox阴影 */
-    ui->comboBox_soundCardNum->setViewShadowEffect();
+    // ui->comboBox_soundCardNum->setViewShadowEffect();
 
     connect(ui->btnDel, &QPushButton::clicked, this, [this]{emit deleted(m_nIndex);});
 }
@@ -54,17 +54,25 @@ void SingleCompareRoadWidget::setDefaultParams(const CompareItemRoadInfo_t& road
     ui->checkBox->setChecked(roadInfo.isEnableRecord);
     // setIndex(roadInfo.nCompareRoadNum);  /* 通道编号不需要设置 */
     /* 先清空选择,再设置当前选项 */
-    ui->comboBox_soundCardNum->setCurrentIndex(-1);
-    for(int i = 0; i < ui->comboBox_soundCardNum->count(); ++i)
+    // ui->comboBox_soundCardNum->setCurrentIndex(-1);
+    int numIndex = ui->comboBox_soundCardNum->findData(roadInfo.scRoadInfo.roadInfo.nRoadNum);
+    if(numIndex != -1)
+    {
+        ui->comboBox_soundCardNum->setCurrentIndex(numIndex);
+    } else
     {
-        SoundCardRoadInfo_t road = ui->comboBox_soundCardNum->itemData(i).value<SoundCardRoadInfo_t>();
-        if(road.roadInfo.nRoadNum == roadInfo.scRoadInfo.roadInfo.nRoadNum &&
-           road.nSoundCardNum == roadInfo.scRoadInfo.nSoundCardNum)
-        {
-            ui->comboBox_soundCardNum->setCurrentIndex(i);
-            break;
-        }
+        ui->comboBox_soundCardNum->setCurrentIndex(0); // 如果没有找到,默认选择第一个
     }
+    // for(int i = 0; i < ui->comboBox_soundCardNum->count(); ++i)
+    // {
+    //     SoundCardRoadInfo_t road = ui->comboBox_soundCardNum->itemData(i).value<SoundCardRoadInfo_t>();
+    //     if(road.roadInfo.nRoadNum == roadInfo.scRoadInfo.roadInfo.nRoadNum &&
+    //        road.nSoundCardNum == roadInfo.scRoadInfo.nSoundCardNum)
+    //     {
+    //         ui->comboBox_soundCardNum->setCurrentIndex(i);
+    //         break;
+    //     }
+    // }
 }
 
 int SingleCompareRoadWidget::getIndex() const
@@ -115,5 +123,13 @@ void SingleCompareRoadWidget::setRoadNameWarn(bool isWarn)
     ui->lineEditRoadName->update();
 }
 
+/* 设置样式表 */
+void SingleCompareRoadWidget::setQSS(QString strStyle)
+{
+    this->setStyleSheet(strStyle);
+    /* 设置下拉框阴影 */
+    ui->comboBox_soundCardNum->setViewShadowEffect();
+}
+
 
 

+ 4 - 0
SettingLibrary/Modules/Basic/singlecompareroadwidget.h

@@ -2,6 +2,7 @@
 #define SINGLECOMPAREROADWIDGET_H
 
 #include <QWidget>
+#include <qt5/QtCore/qchar.h>
 
 #include "SoundCardData.h"
 
@@ -42,6 +43,9 @@ public:
     /* 设置通道名称报警 */
     void setRoadNameWarn(bool isWarn);
 
+    /* 设置样式表 */
+    void setQSS(QString strStyle);
+
 signals:
     void deleted(int nIndex);
 

+ 0 - 1
SettingLibrary/Modules/Noise/noisemonitorparamdialog.cpp

@@ -3,7 +3,6 @@
 
 #include <QFile>
 #include <QIntValidator>
-#include <QRegexp>
 #include <QRegExpValidator>
 
 #include "UIStyleManager.h"