DiagramDesigner/diagramCavas/include/graphicsDataModel/fixedPortsModel.h

72 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 showModelDlg(const QString&,QUuid); //点击时显示指定模型的dlg、指定item的数据(模型名对象Uuid)
void initialPropertyDlg(); //初始化属性设置dlg每个模型拥各自的dlg
void generatePropertyDlg(const QString&);
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; //模型结构信息
public:
static bool _dataInitialised;
static QMap<QUuid,BaseProperty*> _nodeData; //一个data可对应多个item
};