#include "customHMIGenerateDlg.h" #include "dataBase.h" #include "selectPanel.h" #include "powerEntity.h" #include "diagramCavas.h" #include "customHMIList.h" #include "ui_customHMIGenerateDlg.h" #include CustomHMIGenerateDlg::CustomHMIGenerateDlg(QWidget *parent) : QDialog(parent) , ui(new Ui::customHMIGenerateDlg) ,_pOperatePanel(nullptr) ,_pPreviewPanel(nullptr) ,_pPe(nullptr) ,_pOe(nullptr) ,_pItemList(nullptr) { ui->setupUi(this); _pCanvas = dynamic_cast(parent); this->setWindowFlags(Qt::FramelessWindowHint | windowFlags()); initial(); } CustomHMIGenerateDlg::~CustomHMIGenerateDlg() { delete ui; if(_pPe) delete _pPe; if(_pOe) delete _pOe; } void CustomHMIGenerateDlg::initial() { _pItemList = new CustomHMIList(this); connect(ui->btn_return,&QPushButton::clicked,this,&CustomHMIGenerateDlg::onBackClicked); connect(ui->btn_generate,&QPushButton::clicked,this,&CustomHMIGenerateDlg::onGenerateClicked); QVBoxLayout* layOut = new QVBoxLayout(ui->gb_list); layOut->addWidget(_pItemList); _pPe = new ConfigurationDiagram("0","oprerate"); _pOperatePanel = new SelectPanel(_pPe,this,DM_customHMI); _pOe = new ConfigurationDiagram("1","preview"); _pPreviewPanel = new SelectPanel(_pOe,this,DM_customHMI); QVBoxLayout *layOperate = new QVBoxLayout(ui->gb_sys); layOperate->addWidget(_pOperatePanel); _pOperatePanel->getModelController()->setCavas(QPointer(_pCanvas)); QVBoxLayout *layPreview= new QVBoxLayout(ui->gb_preview); layPreview->addWidget(_pPreviewPanel); _pPreviewPanel->getModelController()->setCavas(QPointer(_pCanvas)); connect(_pOperatePanel->getModelController(),&FixedPortsModel::updateCurrentItems,_pItemList,&CustomHMIList::onUpdateItems); connect(_pOperatePanel->getModelController(),&FixedPortsModel::itemSelected,_pItemList,&CustomHMIList::onSelectItems); connect(_pItemList,&CustomHMIList::previewHMI,this,&CustomHMIGenerateDlg::onPreviewHMI); } void CustomHMIGenerateDlg::showDlg(QString sHmi,QString sSys,int nModel) { show(); ui->le_hmiName->setText(sHmi); DataBase* db = DataBase::GetInstance(); if (!db) { qWarning() << "Database instance is null"; return; } _pOperatePanel->getModelController()->clearCurItems(); //先清空 QJsonObject context = db->getHMIContextByTag(sSys); _pOperatePanel->loadNodes(context); } void CustomHMIGenerateDlg::onGenerateClicked() { hide(); } void CustomHMIGenerateDlg::onBackClicked() { emit backCreateHMI(); hide(); } void CustomHMIGenerateDlg::onPreviewHMI(QList lst) { _pPreviewPanel->clearItems(); _pOperatePanel->getModelController()->previewHMI(_pPreviewPanel,lst); }