99 lines
2.4 KiB
C++
99 lines
2.4 KiB
C++
#include "bayManagerDlg.h"
|
|
#include "bayManagerContentDlg.h"
|
|
#include "graphicsItem/electricBayItem.h"
|
|
#include "graphicsDataModel/fixedPortsModel.h"
|
|
#include "ui_bayManagerDlg.h"
|
|
|
|
BayManagerDlg::BayManagerDlg(QWidget *parent)
|
|
: QDialog(parent)
|
|
, ui(new Ui::bayManagerDlg)
|
|
,_modelController(nullptr)
|
|
{
|
|
ui->setupUi(this);
|
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
|
initial();
|
|
}
|
|
|
|
BayManagerDlg::~BayManagerDlg()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void BayManagerDlg::initial()
|
|
{
|
|
connect(ui->btn_ok,&QPushButton::clicked,this,&BayManagerDlg::onOkClicked);
|
|
connect(ui->btn_cancel,&QPushButton::clicked,this,&BayManagerDlg::onCancelClicked);
|
|
connect(ui->listWidget,&QListWidget::itemClicked,this,&BayManagerDlg::onListItemClicked);
|
|
}
|
|
|
|
void BayManagerDlg::showDlg()
|
|
{
|
|
show();
|
|
clearData();
|
|
initData();
|
|
}
|
|
|
|
void BayManagerDlg::initData()
|
|
{
|
|
QList<BayProperty*> lstBay;
|
|
QMap<QUuid,ElectricBayItem*> mapBay = _modelController->allBayItem(); //获取当前图中所有bay
|
|
for(auto& item:mapBay){
|
|
AbstractProperty* p = item->getProperty();
|
|
BayProperty* pBayPro = dynamic_cast<BayProperty*>(p);
|
|
if(pBayPro){
|
|
lstBay.append(pBayPro);
|
|
}
|
|
}
|
|
|
|
generatePage(lstBay);
|
|
}
|
|
|
|
void BayManagerDlg::clearData()
|
|
{
|
|
ui->listWidget->clear();
|
|
for(auto& page:_contentData)
|
|
{
|
|
ui->stackedWidget->removeWidget(page);
|
|
}
|
|
qDeleteAll(_contentData);
|
|
_contentData.clear();
|
|
}
|
|
|
|
void BayManagerDlg::onOkClicked()
|
|
{
|
|
hide();
|
|
for(auto& pDlg:_contentData){
|
|
if(pDlg){
|
|
pDlg->saveSetting();
|
|
}
|
|
}
|
|
}
|
|
|
|
void BayManagerDlg::onCancelClicked()
|
|
{
|
|
hide();
|
|
}
|
|
|
|
void BayManagerDlg::onListItemClicked(QListWidgetItem *item)
|
|
{
|
|
int index = item->data(Qt::UserRole+1).toInt();
|
|
ui->stackedWidget->setCurrentIndex(index);
|
|
}
|
|
|
|
void BayManagerDlg::generatePage(QList<BayProperty*> lstBay)
|
|
{
|
|
for(auto& pData:lstBay)
|
|
{
|
|
BayManagerContentDlg* pBay = new BayManagerContentDlg(this);
|
|
pBay->setProperty(pData);
|
|
pBay->updateByProperty();
|
|
int index = ui->stackedWidget->addWidget(pBay);
|
|
_contentData.insert(index,pBay);
|
|
QListWidgetItem* pItem = new QListWidgetItem(pData->tag());
|
|
pItem->setData(Qt::UserRole+1,index);
|
|
ui->listWidget->addItem(pItem);
|
|
}
|
|
if(ui->stackedWidget->count() != 0)
|
|
ui->stackedWidget->setCurrentIndex(0);
|
|
}
|