singlecompareroadwidget.cpp 3.7 KB

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