2026-03-23 11:06:17 +08:00
|
|
|
|
#include "diagramCavas.h"
|
2026-04-15 17:54:09 +08:00
|
|
|
|
#include "diagramCavas_p.h"
|
2026-04-01 16:39:23 +08:00
|
|
|
|
|
2026-03-23 11:06:17 +08:00
|
|
|
|
DiagramCavas::DiagramCavas(QWidget *parent)
|
|
|
|
|
|
: QMdiArea(parent)
|
2026-04-15 17:54:09 +08:00
|
|
|
|
,d_ptr(new DiagramCavasPrivate(this))
|
2026-03-23 11:06:17 +08:00
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DiagramCavas::~DiagramCavas()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
delete d;
|
2026-03-23 11:06:17 +08:00
|
|
|
|
disconnect(); //断开连接避免动态库释放时信号问题
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MonitorPanel* DiagramCavas::getMonitorPanel(QString sPage)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
if(d->m_mapMonitorPanel.contains(sPage))
|
|
|
|
|
|
return d->m_mapMonitorPanel[sPage].first;
|
2026-03-23 11:06:17 +08:00
|
|
|
|
return nullptr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-15 17:54:09 +08:00
|
|
|
|
DataAccessor* DiagramCavas::getDataAccessor() const
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_D(const DiagramCavas);
|
|
|
|
|
|
return d->_dataAccessor;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-23 11:06:17 +08:00
|
|
|
|
void DiagramCavas::updateSubPos()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->updateCornerPos();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::passRecommmandHttpData(HttpRecommandInfo info)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->processRecommandData(info);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DiagramConnectSetting* DiagramCavas::getConnectSettingDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
return d->_connectSetting;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ExtraPropertyManager* DiagramCavas::getExtraPropertyManager()
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
return d->_extraPropertyManager;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QMap<QString,PluginTypeInfo> DiagramCavas::getPluginShapeInfo()
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
return d->m_pluginInfo;
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::initial()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->initialImpl(); // 调用私有实现
|
2026-04-08 14:17:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::setCurMode(int nMode)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->_curMode = nMode;
|
|
|
|
|
|
if(d->_curMode == 1){ //运行模式下
|
2026-04-08 14:17:47 +08:00
|
|
|
|
showPropertyDlg();
|
|
|
|
|
|
//setViewMode(QMdiArea::SubWindowView);
|
|
|
|
|
|
}
|
|
|
|
|
|
else{
|
|
|
|
|
|
hidePropertyDlg();
|
|
|
|
|
|
//setViewMode(QMdiArea::TabbedView);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-15 17:54:09 +08:00
|
|
|
|
int DiagramCavas::getCurMode()
|
2026-04-08 14:17:47 +08:00
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
return d->_curMode;
|
|
|
|
|
|
}
|
2026-04-08 14:17:47 +08:00
|
|
|
|
|
2026-04-15 17:54:09 +08:00
|
|
|
|
void DiagramCavas::showPropertyDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->showPropertyDlgImpl();
|
2026-04-08 14:17:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::hidePropertyDlg()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->hidePropertyDlgImpl();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-10 17:43:35 +08:00
|
|
|
|
void DiagramCavas::setHMIVisiblebyName(const QString& str,bool val)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-04-10 17:43:35 +08:00
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findDiagramByName(str,ModelFunctionType::RuntimeModel);
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(val) //显示
|
|
|
|
|
|
onSignal_loadMonitor(pEntity);
|
|
|
|
|
|
else{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
if(d->m_mapMonitorPanel.contains(str))
|
|
|
|
|
|
d->m_mapMonitorPanel[str].first->hide();
|
2026-04-10 17:43:35 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-23 11:06:17 +08:00
|
|
|
|
void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,QString parent)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->addDrawingPanelImpl(pItem, mode, parent);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_addGraphicsItem(ModelStateInfo& info)
|
|
|
|
|
|
{
|
|
|
|
|
|
QMdiSubWindow* actWindow = activeSubWindow();
|
|
|
|
|
|
if(!actWindow)
|
|
|
|
|
|
return;
|
|
|
|
|
|
QWidget* pWindow= currentSubWindow()->widget();
|
|
|
|
|
|
/*DrawingPanel* pPanel = dynamic_cast<DrawingPanel*>(pWindow);
|
|
|
|
|
|
|
|
|
|
|
|
if(pPanel)
|
|
|
|
|
|
pPanel->onSignal_addGraphicsItem(info);*/
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_addPage()
|
|
|
|
|
|
{
|
|
|
|
|
|
//onSignal_addDrawingPanel(QString("Page_")+QString::number(++_pageIndex));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_savePage()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->savePageImpl();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_loadMonitor(PowerEntity* p)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->loadMonitorImpl(p);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::runPage(const QString sName)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
QString pageName = sName+QString("_run");
|
2026-04-15 17:54:09 +08:00
|
|
|
|
if(!d->m_mapMonitorPanel.contains(pageName))
|
2026-03-23 11:06:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
//onSignal_addDrawingPanel(pageName,DM_run);
|
2026-04-15 17:54:09 +08:00
|
|
|
|
//QJsonObject context = DataBase::GetInstance()->getPageContextByName(sName);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
//m_mapDrawPanel[pageName]->loadNodes(context);
|
|
|
|
|
|
}
|
|
|
|
|
|
else //已存在
|
|
|
|
|
|
{
|
|
|
|
|
|
//m_mapDrawPanel[pageName]->show();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_runPage()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
runPage(d->_curPage);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_deletePage()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_activatePage(const QString& name)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->_curPage = name;
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_panelDelete(const QString& name,int nType)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
if(nType == 2){
|
2026-04-15 17:54:09 +08:00
|
|
|
|
MonitorPanel* pPanel = d->m_mapMonitorPanel.take(name).first;
|
2026-03-23 11:06:17 +08:00
|
|
|
|
this->removeSubWindow(pPanel);
|
|
|
|
|
|
delete pPanel;
|
|
|
|
|
|
}
|
2026-04-15 17:54:09 +08:00
|
|
|
|
d->calculateLauncherVisible();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_createEntity(EntityInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
PowerEntity* pEntity;
|
|
|
|
|
|
pEntity = TopologyManager::instance().findEntity(info.sUuid);
|
|
|
|
|
|
if(!pEntity) //不存在创建
|
|
|
|
|
|
{
|
|
|
|
|
|
pEntity = TopologyManager::instance().createEntity(info.eType,info.sUuid,info.sName);
|
|
|
|
|
|
PowerEntity* pParent = TopologyManager::instance().findEntity(info.sParentId);
|
|
|
|
|
|
if(pParent) //构建父子关系
|
|
|
|
|
|
{
|
|
|
|
|
|
pParent->addChild(pEntity);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (info.eType){
|
|
|
|
|
|
case EntityType::Grid:
|
|
|
|
|
|
case EntityType::Zone:
|
|
|
|
|
|
case EntityType::Station:
|
|
|
|
|
|
break;
|
|
|
|
|
|
case EntityType::ConfigurationDiagram:
|
|
|
|
|
|
onSignal_addDrawingPanel(pEntity);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_changeEntity(EntityInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_deleteEntity(EntityInfo info)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findEntity(info.sUuid);
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (info.eType){
|
|
|
|
|
|
case EntityType::Grid:
|
|
|
|
|
|
case EntityType::Zone:
|
|
|
|
|
|
case EntityType::Station:
|
|
|
|
|
|
TopologyManager::instance().deleteEntity(info.sUuid);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case EntityType::ConfigurationDiagram:
|
2026-04-15 17:54:09 +08:00
|
|
|
|
d->removePanel(pEntity);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
TopologyManager::instance().deleteEntity(info.sUuid);
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_selectEntity(EntityInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findEntity(info.sUuid);
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (info.eType){
|
|
|
|
|
|
case EntityType::Grid:
|
|
|
|
|
|
case EntityType::Zone:
|
|
|
|
|
|
case EntityType::Station:
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else //不存在,从数据库中load
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_createDiagram(DiagramInfo info,DiagramMode mode)
|
|
|
|
|
|
{
|
|
|
|
|
|
PowerEntity* pEntity;
|
|
|
|
|
|
ModelFunctionType type;
|
|
|
|
|
|
if(mode == DM_run)
|
|
|
|
|
|
type = ModelFunctionType::RuntimeModel;
|
|
|
|
|
|
else if(mode == DM_edit)
|
|
|
|
|
|
type = ModelFunctionType::ProjectModel;
|
|
|
|
|
|
pEntity = TopologyManager::instance().findDiagram(info.id.toString(),type);
|
|
|
|
|
|
if(!pEntity) //不存在创建
|
|
|
|
|
|
{
|
|
|
|
|
|
pEntity = TopologyManager::instance().createDiagram(info.id.toString(),info.sName,type);
|
|
|
|
|
|
/*PowerEntity* pParent = TopologyManager::instance().findDiagram(info.parentId.toString());
|
|
|
|
|
|
if(pParent) //构建父子关系
|
|
|
|
|
|
{
|
|
|
|
|
|
pParent->addChild(pEntity);
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
onSignal_addDrawingPanel(pEntity,mode);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_changeDiagram(DiagramInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_deleteDiagram(DiagramInfo info)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findDiagram(info.id.toString());
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
d->removePanel(pEntity);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
TopologyManager::instance().deleteEntity(info.id.toString());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_selectDiagram(DiagramInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findDiagram(QString::number(info.id.toInt()));
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
|
|
|
|
|
//onSignal_loadPage(pEntity);
|
|
|
|
|
|
}
|
|
|
|
|
|
else //不存在,从数据库中load
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_openNetSetting()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->showNewSettingDlg();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_openStructDataPreview()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->showStructDataPreviewDlg();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_createHMI(QString sName,QUuid id)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit createHMI(sName,id);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_updateHMI(QString sName,QUuid id,int nState,QString sTime)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit updateHMI(sName,id,nState,sTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::resizeEvent(QResizeEvent* event)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->updateCornerPos();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onTargetSelected(QObject* obj)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->onTargetSelected(obj);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
/****************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_updateTopology(QList<HierarchyItem> lst,bool refresh,bool showFull)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit prepareUpdateTopology(lst,refresh,showFull);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*******************bay************************/
|
|
|
|
|
|
void DiagramCavas::onSignl_openCurrentBay()
|
|
|
|
|
|
{
|
|
|
|
|
|
/*QWidget* pWindow= currentSubWindow()->widget();
|
|
|
|
|
|
if(pWindow == nullptr){
|
|
|
|
|
|
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"当前无打开的工程模"));
|
|
|
|
|
|
}
|
|
|
|
|
|
MonitorPanel* pPanel = dynamic_cast<MonitorPanel*>(pWindow);
|
|
|
|
|
|
if(pPanel)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(pPanel->getMode() == DM_run)
|
|
|
|
|
|
{
|
|
|
|
|
|
pPanel->getModelController()->onSignal_openBayManager();
|
|
|
|
|
|
}
|
|
|
|
|
|
}*/
|
|
|
|
|
|
}
|
|
|
|
|
|
/*********************monitor**************************/
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onCreateHMIClicked()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->onCreateHMI();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_createHMIClicked(QString sHMI,QString sStructPage,int modelType)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->createHMIClickedImpl(sHMI, sStructPage, modelType);
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_updateCurItems(QList<HierarchyItem> lst,bool refresh)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit prepareUpdateItems(lst,refresh);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_selectedItems(QList<HierarchyItem> lst)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit prepareSelectItems(lst);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_monitorCreated(QString sProj,QPair<QString,QUuid> pair)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit updateMonitorList(sProj,pair);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_monitorItemCreated(QList<HierarchyItem> lst)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit createdMonitorItems(lst);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_monitorSelected(DiagramInfo info)
|
|
|
|
|
|
{
|
|
|
|
|
|
PowerEntity* pEntity = TopologyManager::instance().findDiagram(info.id.toString(),ModelFunctionType::RuntimeModel);
|
|
|
|
|
|
if(pEntity)
|
|
|
|
|
|
{
|
|
|
|
|
|
onSignal_loadMonitor(pEntity);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_saveMonitor(QList<QPair<QString,QUuid>> lst)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
//生成monitor相关,GridFrame中处理
|
|
|
|
|
|
|
|
|
|
|
|
/*for(auto &pair:lst){
|
2026-03-23 11:06:17 +08:00
|
|
|
|
auto pMonitor = m_mapMonitorPanel.value(pair.first).first;
|
|
|
|
|
|
if(pMonitor){
|
|
|
|
|
|
if(DataBase::GetInstance()->getPageIdByName(pMonitor->getParentPage()) == -1){
|
|
|
|
|
|
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"请先保存工程模型"));
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for(auto& pair:lst){
|
|
|
|
|
|
auto pMonitor = m_mapMonitorPanel.value(pair.first).first;
|
|
|
|
|
|
if(pMonitor){
|
|
|
|
|
|
if(DataBase::GetInstance()->getMonitorIdByName(pair.first).isNull()) //不存在,创建
|
|
|
|
|
|
DataBase::GetInstance()->insertMonitor(pair.second,pair.first,pair.first,pMonitor->getParentPage(),pMonitor->getDiagramInfo());
|
|
|
|
|
|
else
|
|
|
|
|
|
DataBase::GetInstance()->updateMonitor(pair.first,pMonitor->getDiagramInfo());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-04-15 17:54:09 +08:00
|
|
|
|
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"保存成功"));*/
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::updateMonitorListFromDB(int dest)
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
//加载monitor列表,GridFrame中处理
|
|
|
|
|
|
|
|
|
|
|
|
/*if(dest != 0)
|
2026-03-23 11:06:17 +08:00
|
|
|
|
_loadMonitorPageDlg->clearItems();
|
|
|
|
|
|
|
|
|
|
|
|
QList<MonitorPageInfo> lstMonitor = DataBase::GetInstance()->getAllMonitor();
|
|
|
|
|
|
for(auto &info:lstMonitor)
|
|
|
|
|
|
{
|
|
|
|
|
|
auto p = TopologyManager::instance().findDiagram(info.uid.toString(),ModelFunctionType::RuntimeModel);
|
|
|
|
|
|
if(!p){
|
|
|
|
|
|
TopologyManager::instance().createDiagram(info.uid.toString(),info.name,ModelFunctionType::RuntimeModel);
|
|
|
|
|
|
if(dest == 0)
|
|
|
|
|
|
emit updateMonitorList(info.parent,qMakePair(info.name,info.uid));
|
|
|
|
|
|
else{
|
|
|
|
|
|
_loadMonitorPageDlg->updateItems(info.parent,qMakePair(info.name,info.uid));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else{ //存在直接发送
|
|
|
|
|
|
if(dest == 0)
|
|
|
|
|
|
emit updateMonitorList(info.parent,qMakePair(info.name,info.uid));
|
|
|
|
|
|
else{
|
|
|
|
|
|
_loadMonitorPageDlg->updateItems(info.parent,qMakePair(info.name,info.uid));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-04-15 17:54:09 +08:00
|
|
|
|
}*/
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::onSignal_updateMonitorTopology(QList<QUuid> lst)
|
|
|
|
|
|
{
|
|
|
|
|
|
emit updateMonitorTopology(lst);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramCavas::updateHMIlstFromDB()
|
|
|
|
|
|
{
|
2026-04-15 17:54:09 +08:00
|
|
|
|
Q_D(DiagramCavas);
|
|
|
|
|
|
d->updateHMIFromDB();
|
2026-03-23 11:06:17 +08:00
|
|
|
|
}
|