92 lines
2.8 KiB
C++
92 lines
2.8 KiB
C++
|
|
#include "customHMIGenerateDlg.h"
|
||
|
|
#include "dataBase.h"
|
||
|
|
#include "selectPanel.h"
|
||
|
|
#include "powerEntity.h"
|
||
|
|
#include "diagramCavas.h"
|
||
|
|
#include "customHMIList.h"
|
||
|
|
#include "ui_customHMIGenerateDlg.h"
|
||
|
|
#include <QVBoxLayout>
|
||
|
|
|
||
|
|
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<DiagramCavas*>(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<DiagramCavas>(_pCanvas));
|
||
|
|
|
||
|
|
QVBoxLayout *layPreview= new QVBoxLayout(ui->gb_preview);
|
||
|
|
layPreview->addWidget(_pPreviewPanel);
|
||
|
|
_pPreviewPanel->getModelController()->setCavas(QPointer<DiagramCavas>(_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<HierarchyItem> lst)
|
||
|
|
{
|
||
|
|
_pPreviewPanel->clearItems();
|
||
|
|
_pOperatePanel->getModelController()->previewHMI(_pPreviewPanel,lst);
|
||
|
|
}
|