#pragma once #include "graphicsDataModel/baseModel.h" #include "serializable.h" #include #include #include class DrawingPanel; class GraphicsBaseItem; class BaseProperty; class DesignerScene; class HttpInterface; struct Connection; class FixedPortsModel : public BaseModel, public Serializable { Q_OBJECT public: FixedPortsModel(); ~FixedPortsModel(); public: QMap allNodePos() const; QVector allConnections(); QMap& allItems(); bool addNodeItem(QUuid uuid,GraphicsBaseItem*); void addNodeItem(QUuid id,/*int type,*/QPointF pos); QVariant nodeData(QUuid nodeId, NodeRole role) const; BaseProperty* addNodeData(QUuid id,int type,QString name); //对应component数据,一个data可对应多个item void loadNodeDataFromDataBase(); //从数据库加载数据 void addConnectLline(QUuid srcId,QUuid destId,int srcPort,int destPort); void deleteNodeItem(GraphicsBaseItem*); QJsonObject saveNode(QUuid const) const; void saveNode(int nPageId); void setScene(DesignerScene* p){_scene = p;} void setTopWidget(DrawingPanel* p) {_widget = p;} QWidget* getTopWidget(); Q_SIGNALS: void activatePage(const QString&); //激活当前model所在page public: void setPageName(QString s) {_pageName = s;} //设置表名称 QString pageName() const {return _pageName;} void activateModel() {Q_EMIT activatePage(_pageName);} //发送激活信号(点击) void startHttpRequest(); //开始请求数据(运行时) public Q_SLOTS: void onSignal_ifExits(QUuid id,const QString&,int type,GraphicsBaseItem*); //判断用户输入的名称是否已存在 void onTimeOut(); void onSignal_GetPointData(QString type,QMap map); private: QMap _nodeItem; QString _pageName; DesignerScene* _scene; DrawingPanel* _widget; //顶层widget HttpInterface* _Interface; QTimer* _timer; public: static bool _dataInitialised; static QMap _nodeData; //一个data可对应多个item };