DiagramDesigner/diagramCavas/include/graphicsDataModel/fixedPortsModel.h

71 lines
2.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "graphicsDataModel/baseModel.h"
#include "serializable.h"
#include <QSharedPointer>
#include <QJsonObject>
#include <QTimer>
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<QUuid,QPointF> allNodePos() const;
QVector<Connection> allConnections();
QMap<QUuid,GraphicsBaseItem*>& 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,QString modelName); //对应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();
void addModelProperty(modelStateInfo); //使用信号接收属性数据
void getModelInfo(); //获取模型结构信息
void getModelData(); //获取模型数据
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<qint64,double> map);
private:
QMap<QUuid,GraphicsBaseItem*> _nodeItem;
QString _pageName;
DesignerScene* _scene;
DrawingPanel* _widget; //顶层widget
HttpInterface* _Interface;
QTimer* _timer;
QMap<QString,modelStateInfo> _modelStateInfo; //接收的模型结构信息
QMap<QString,modelDataInfo> _modleDataInfo; //模型实时数据
public:
static bool _dataInitialised;
static QMap<QUuid,BaseProperty*> _nodeData; //一个data可对应多个item
};