#include "singlecompareroadwidget.h" #include "ui_singlecompareroadwidget.h" SingleCompareRoadWidget::SingleCompareRoadWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::SingleCompareRoadWidget) , m_nIndex(0) { ui->setupUi(this); connect(ui->btnDel, &QPushButton::clicked, this, [this]{emit deleted(m_nIndex);}); } SingleCompareRoadWidget::~SingleCompareRoadWidget() { delete ui; } bool SingleCompareRoadWidget::isDelBtnVisible() const { return ui->btnDel->isVisible(); } void SingleCompareRoadWidget::setDelBtnVisible(bool bVisible) { ui->btnDel->setVisible(bVisible); } /* 设置声卡通道列表 */ void SingleCompareRoadWidget::setSoundCardRoadList(const QList& listRoad) { ui->comboBox_soundCardNum->clear(); for(const auto& road : listRoad) { /* 显示的内容 声卡名:通道号 */ QString str = QString("%1:%2").arg(road.strSoundCardName).arg(road.roadInfo.nRoadNum); ui->comboBox_soundCardNum->addItem(str, QVariant::fromValue(road)); } } /* 设置默认参数,设置之前需要先设置完成声卡可选通道列表 */ void SingleCompareRoadWidget::setDefaultParams(const CompareItemRoadInfo_t& roadInfo) { ui->lineEditRoadName->setText(roadInfo.strCompareRoadName); ui->checkBox->setChecked(roadInfo.isEnableRecord); // setIndex(roadInfo.nCompareRoadNum); /* 通道编号不需要设置 */ /* 先清空选择,再设置当前选项 */ ui->comboBox_soundCardNum->setCurrentIndex(-1); for(int i = 0; i < ui->comboBox_soundCardNum->count(); ++i) { SoundCardRoadInfo_t road = ui->comboBox_soundCardNum->itemData(i).value(); if(road.roadInfo.nRoadNum == roadInfo.scRoadInfo.roadInfo.nRoadNum && road.nSoundCardNum == roadInfo.scRoadInfo.nSoundCardNum) { ui->comboBox_soundCardNum->setCurrentIndex(i); break; } } } int SingleCompareRoadWidget::getIndex() const { return m_nIndex; } void SingleCompareRoadWidget::setIndex(int nIndex) { if(nIndex <= 0) return; m_nIndex = nIndex; QString str = nIndex == 1 ? "主" : QString::number(nIndex); ui->labelRoadName->setText(QString("*%1通道名称:").arg(str)); ui->labelDriverNum->setText(QString("*%1通道声卡设备编号:").arg(str)); ui->checkBox->setText(QString("%1通道开启录音").arg(str)); } /* 获取通道名称 */ QString SingleCompareRoadWidget::getRoadName() const { return ui->lineEditRoadName->text(); } /* 获取声卡录音通道编号 */ SoundCardRoadInfo_t SingleCompareRoadWidget::getSoundCardRoadInfo() { SoundCardRoadInfo_t roadInfo; roadInfo = ui->comboBox_soundCardNum->currentData().value(); return roadInfo; } /* 是否开启录音 */ bool SingleCompareRoadWidget::isRecordEnabled() const { return ui->checkBox->isChecked(); } /* 设置通道名称报警 */ void SingleCompareRoadWidget::setRoadNameWarn(bool isWarn) { ui->lineEditRoadName->setProperty("Warn", isWarn); ui->lineEditRoadName->style()->unpolish(ui->lineEditRoadName); ui->lineEditRoadName->style()->polish(ui->lineEditRoadName); ui->lineEditRoadName->update(); }