#ifndef DIAGRAMCAVAS_H #define DIAGRAMCAVAS_H #include #include "global.h" #include "export.hpp" QT_BEGIN_NAMESPACE namespace Ui { class diagramCavas; } QT_END_NAMESPACE class DrawingPanel; class PowerEntity; class DiagramEditorWizard; class EditPanel; class GraphicsBaseModelItem; class EditBaseItem; class MonitorPanel; class DIAGRAM_DESIGNER_PUBLIC DiagramCavas : public QMdiArea { Q_OBJECT public: DiagramCavas(QWidget *parent = nullptr); ~DiagramCavas(); DrawingPanel* getPanel(QString); EditPanel* getEditPanel(QString); MonitorPanel* getMonitorPanel(QString); public: void initial(); signals: void prepareUpdateItems(QList,bool refresh); void prepareSelectItems(QList); void updateMonitorList(QString,QPair,int nMode = 0); //0新增1删除 void createdMonitorItems(QList); //创建的监控中item个数 public slots: void onSignal_addDrawingPanel(PowerEntity* p,DiagramMode = DM_edit,QString parent = QString()); //parent:派生运行时的page void onSignal_addGraphicsItem(modelStateInfo&); void onSignal_addPage(); void onSignal_savePage(); void onSignal_loadPage(PowerEntity* p); void onSignal_loadEdit(const QString&,QUuid); void onSignal_loadMonitor(PowerEntity* p); void runPage(const QString); //运行时 void onSignal_runPage(); void onSignal_deletePage(); void onSignal_activatePage(const QString& name); void onSignal_panelDelete(const QString& name,int nType); //type:0editorPanel,1drawPanel void onSignal_createEntity(EntityInfo); void onSignal_changeEntity(EntityInfo); void onSignal_deleteEntity(EntityInfo); void onSignal_selectEntity(EntityInfo); void onSignal_createDiagram(DiagramInfo,DiagramMode mode = DM_edit); void onSignal_changeDiagram(DiagramInfo); void onSignal_deleteDiagram(DiagramInfo); void onSignal_selectDiagram(DiagramInfo); void onCreateTestBaseModelDiagram(); //生成测试基模图 /******************************生成组态***********************************/ void onSignal_createEditPanel(QString,QUuid); void onSignal_prepareOpenSetting(QString); void onSignal_prepareSaveEdit(QString); void onSignal_prepareDeleteEditor(const QString&,QUuid); EditPanel* onSignal_addEditPanel(QString); void onSignal_addEditWizard(QString,QUuid,bool val = true); //bool:是否显示wizard void onSignal_wizardFinished(QString,QMap,QList); void onSignal_unloadProject(const QString&); /*********************************间隔**************************************/ void onSignl_openCurrentBay(); /********************************运行时**********************************/ void onSignal_updateCurItems(QList,bool); //更新当前设备列表 void onSignal_selectedItems(QList); //当前选中设备 void onSignal_generate(QString,QList); //使用选中设备生成监控 (监控名,设备) void onSignal_monitorCreated(QString,QPair); //监控已创建 void onSignal_monitorItemCreated(QList); //监控中创建的对象 void onSignal_monitorSelected(DiagramInfo); //监控选中 void onSignal_saveMonitor(QList>); //保存选中的监控 void updateMonitorListFromDB(); //从数据库更新监控列表 QMap> getMapDraw() {return m_mapDrawPanel;} QMap> getMapEdit() {return m_mapEditPanel;} QMap> getMapMonitor() {return m_mapMonitorPanel;} private: void removePanel(PowerEntity*); private: QMap> m_mapDrawPanel; //工程模panel QMap> m_mapEditPanel; //编辑时 QMap> m_mapMonitorPanel; //监控时panel int _pageIndex; QString _curPage; }; #endif