DiagramDesigner/diagramCavas/include/graphicsDataModel/diagramEditorModel.h

57 lines
3.5 KiB
C
Raw Normal View History

#pragma once
/**组态编辑时的数据模型*/
#include "graphicsDataModel/baseModel.h"
class GraphicsBaseModelItem;
class DiagramEditorItemProperty;
class GraphicsBaseItem;
class EditPreviewScene;
2025-08-28 10:59:04 +08:00
class ElectricBaseModelLineItem;
2025-09-05 17:30:07 +08:00
class DiagramEditorTransformerBlock;
class EditPanel;
class DiagramEditorModel : public BaseModel
{
Q_OBJECT
public:
DiagramEditorModel();
~DiagramEditorModel();
bool addTempPreviewItem(QUuid uuid,GraphicsBaseModelItem*);
DiagramEditorItemProperty* addTempPreviewData(QUuid id,int type,QString name,QString metaName,QString sBlock = QString()); //添加图元基模数据
void createTopoTerminalsByItem(GraphicsBaseItem*,ModelFunctionType funType = ModelFunctionType::ProjectModel); //通过图形对象创建port接线点(新建)
void generateTempBay(); //通过设置生成间隔预览对象
2025-09-05 17:30:07 +08:00
void generateTempTrans(int nType,DiagramEditorTransformerBlock* block = nullptr); //0高压侧1中压侧2低压侧3整个变压器
void connectTransToNeutral(DiagramEditorTransformerBlock* block); //连接变压器与中性点设备
void linkTransItem(GraphicsBaseModelItem*,QStandardItemModel*); //连接中性点与设备点
void generateTempComponent(QUuid uid,QString sName,int nCategory,int nType,QPoint pos,int nRotate = 0); //生成设备 uid,分类(设备、逻辑点),类型,旋转
2025-08-28 10:59:04 +08:00
ElectricBaseModelLineItem* generateTempLine(QUuid uid,QString sName); //生成连线
void clearCurPreview();
2025-09-05 17:30:07 +08:00
void setPanel(EditPanel* p) {_pPanel = p;}
void setCurBayRouteModel(QStandardItemModel* p) {_pCurBayRoute = p;}
QStandardItemModel* getCurBayRouteModel() {return _pCurBayRoute;}
void setCurBayComponentModel(QStandardItemModel* p) {_pCurBayComponent = p;}
QStandardItemModel* getCurBayComponentModel() {return _pCurBayComponent;}
2025-09-05 17:30:07 +08:00
void setCurTransRouteModels(QMap<int,QStandardItemModel*> map) {_pCurTransLRoutes = map;}
QMap<int,QStandardItemModel*> getCurTransRouteModels() {return _pCurTransLRoutes;}
void setCurTransComponentModel(QStandardItemModel* p) {_pCurTransComponent = p;}
QStandardItemModel* setCurTransComponentModel() {return _pCurTransComponent;}
void setCurPreviewScene(EditPreviewScene* p) {_pCurPreviewScene = p;}
2025-09-05 17:30:07 +08:00
QStandardItem* getNameItem(const QString&,int nFrom = 0); //获取返回当前设备模型中的name项 nFrom,0间隔1变压器
void generateItemByModel(QStandardItemModel* pModel,int nFrom = 0,QPoint delta = QPoint(0,0)); //0间隔1变压器
void generateItemByInfo(QMap<QString,DiagramEditorRouteInfo> mapRoute,QMap<QString,DiagramEditorComponentInfo> mapCompo,QPoint delta = QPoint(0,0)); //根据data生成item
void updateTarget(QMap<QString,DiagramEditorRouteInfo>&,int nLayout,int nSource); //更新位置 nLayout主次朝向:8421,8421 上下左右,上下左右 nSource:0间隔1变压器
private:
QMap<QUuid,GraphicsBaseModelItem*> _tempItem; //临时预览对象
QStandardItemModel* _pCurBayRoute; //当前使用的间隔路线
QStandardItemModel* _pCurBayComponent; //当前使用的间隔设备库
2025-09-05 17:30:07 +08:00
QMap<int,QStandardItemModel*> _pCurTransLRoutes; //变压器中性点路线
QStandardItemModel* _pCurTransComponent; //当前使用的变压器设备库
EditPreviewScene* _pCurPreviewScene; //当前预览scene
2025-09-05 17:30:07 +08:00
EditPanel* _pPanel; //主界面
};