singlecompareroadwidget.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #include "singlecompareroadwidget.h"
  2. #include "ui_singlecompareroadwidget.h"
  3. SingleCompareRoadWidget::SingleCompareRoadWidget(QWidget *parent)
  4. : QWidget(parent)
  5. , ui(new Ui::SingleCompareRoadWidget)
  6. , m_nIndex(0)
  7. {
  8. ui->setupUi(this);
  9. connect(ui->btnDel, &QPushButton::clicked, this, [this]{emit deleted(m_nIndex);});
  10. }
  11. SingleCompareRoadWidget::~SingleCompareRoadWidget()
  12. {
  13. delete ui;
  14. }
  15. bool SingleCompareRoadWidget::isDelBtnVisible() const
  16. {
  17. return ui->btnDel->isVisible();
  18. }
  19. void SingleCompareRoadWidget::setDelBtnVisible(bool bVisible)
  20. {
  21. ui->btnDel->setVisible(bVisible);
  22. }
  23. /* 设置声卡通道列表 */
  24. void SingleCompareRoadWidget::setSoundCardRoadList(const QList<SoundCardRoadInfo_t>& listRoad)
  25. {
  26. ui->comboBox_soundCardNum->clear();
  27. for(const auto& road : listRoad)
  28. {
  29. /* 显示的内容 声卡名:通道号 */
  30. QString str = QString("%1:%2").arg(road.strSoundCardName).arg(road.roadInfo.nRoadNum);
  31. ui->comboBox_soundCardNum->addItem(str, QVariant::fromValue(road));
  32. }
  33. }
  34. /* 设置默认参数,设置之前需要先设置完成声卡可选通道列表 */
  35. void SingleCompareRoadWidget::setDefaultParams(const CompareItemRoadInfo_t& roadInfo)
  36. {
  37. ui->lineEditRoadName->setText(roadInfo.strCompareRoadName);
  38. ui->checkBox->setChecked(roadInfo.isEnableRecord);
  39. // setIndex(roadInfo.nCompareRoadNum); /* 通道编号不需要设置 */
  40. /* 先清空选择,再设置当前选项 */
  41. ui->comboBox_soundCardNum->setCurrentIndex(-1);
  42. for(int i = 0; i < ui->comboBox_soundCardNum->count(); ++i)
  43. {
  44. SoundCardRoadInfo_t road = ui->comboBox_soundCardNum->itemData(i).value<SoundCardRoadInfo_t>();
  45. if(road.roadInfo.nRoadNum == roadInfo.scRoadInfo.roadInfo.nRoadNum &&
  46. road.nSoundCardNum == roadInfo.scRoadInfo.nSoundCardNum)
  47. {
  48. ui->comboBox_soundCardNum->setCurrentIndex(i);
  49. break;
  50. }
  51. }
  52. }
  53. int SingleCompareRoadWidget::getIndex() const
  54. {
  55. return m_nIndex;
  56. }
  57. void SingleCompareRoadWidget::setIndex(int nIndex)
  58. {
  59. if(nIndex <= 0) return;
  60. m_nIndex = nIndex;
  61. QString str = nIndex == 1 ? "主" : QString::number(nIndex);
  62. ui->labelRoadName->setText(QString("<font color='red'>*</font>%1通道名称:").arg(str));
  63. ui->labelDriverNum->setText(QString("<font color='red'>*</font>%1通道声卡设备编号:").arg(str));
  64. ui->checkBox->setText(QString("%1通道开启录音").arg(str));
  65. }
  66. /* 获取通道名称 */
  67. QString SingleCompareRoadWidget::getRoadName() const
  68. {
  69. return ui->lineEditRoadName->text();
  70. }
  71. /* 获取声卡录音通道编号 */
  72. SoundCardRoadInfo_t SingleCompareRoadWidget::getSoundCardRoadInfo()
  73. {
  74. SoundCardRoadInfo_t roadInfo;
  75. roadInfo = ui->comboBox_soundCardNum->currentData().value<SoundCardRoadInfo_t>();
  76. return roadInfo;
  77. }
  78. /* 是否开启录音 */
  79. bool SingleCompareRoadWidget::isRecordEnabled() const
  80. {
  81. return ui->checkBox->isChecked();
  82. }
  83. /* 设置通道名称报警 */
  84. void SingleCompareRoadWidget::setRoadNameWarn(bool isWarn)
  85. {
  86. ui->lineEditRoadName->setProperty("Warn", isWarn);
  87. ui->lineEditRoadName->style()->unpolish(ui->lineEditRoadName);
  88. ui->lineEditRoadName->style()->polish(ui->lineEditRoadName);
  89. ui->lineEditRoadName->update();
  90. }