compareitemdialog.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "compareitemdialog.h"
  2. #include "ui_compareitemdialog.h"
  3. CompareItemDialog::CompareItemDialog(QWidget *parent)
  4. : QDialog(parent)
  5. , ui(new Ui::CompareItemDialog)
  6. {
  7. ui->setupUi(this);
  8. setWindowFlag(Qt::FramelessWindowHint);
  9. setAttribute(Qt::WA_TranslucentBackground);
  10. connect(ui->btnCancel, &QPushButton::clicked, this, &CompareItemDialog::reject);
  11. connect(ui->btnClose, &QPushButton::clicked, this, &CompareItemDialog::close);
  12. connect(ui->btnAdd, &QPushButton::clicked, this, &CompareItemDialog::OnBtnAddClicked);
  13. }
  14. CompareItemDialog::~CompareItemDialog()
  15. {
  16. delete ui;
  17. }
  18. void CompareItemDialog::OnBtnAddClicked()
  19. {
  20. QVBoxLayout* pLayout = qobject_cast<QVBoxLayout*>(ui->scrollAreaWidgetContents->layout());
  21. if(pLayout)
  22. {
  23. SingleCompareRoadWidget *pWgt = new SingleCompareRoadWidget(this);
  24. connect(pWgt, &SingleCompareRoadWidget::deleted, this, &CompareItemDialog::OnCompareRoadWgtDeleted);
  25. pWgt->setIndex(m_listOtherRoadWgt.size() + 3);
  26. pWgt->setDelBtnVisible(true);
  27. pLayout->insertWidget(m_listOtherRoadWgt.size(), pWgt);
  28. m_listOtherRoadWgt.append(pWgt);
  29. }
  30. }
  31. void CompareItemDialog::OnCompareRoadWgtDeleted(int nIndex)
  32. {
  33. int nRealIndex = nIndex - 3;
  34. if(nRealIndex < m_listOtherRoadWgt.size())
  35. {
  36. SingleCompareRoadWidget *pWgt = m_listOtherRoadWgt.at(nRealIndex);
  37. m_listOtherRoadWgt.removeOne(pWgt);
  38. delete pWgt;
  39. pWgt = nullptr;
  40. }
  41. for(int i = nRealIndex; i < m_listOtherRoadWgt.size(); i++)
  42. {
  43. m_listOtherRoadWgt.at(i)->setIndex(i + 3);
  44. }
  45. }