#ifndef EDITPANEL_H #define EDITPANEL_H //编辑文本项生成组态图 #include #include #include "global.h" class EditView; class EditScene; class QVBoxLayout; //class QGraphicsGridLayout; class QGraphicsLinearLayout; class QPushButton; class EditMainRect; class EditRowData; class EditContainerItem; class DiagramEditorWizard; class DiagramEditorBaseBlock; class EditBaseItem; class DiagramEditorBayDetailSettingDlg; class DiagramEditorTransDetailSettingDlg; class DiagramEditorModel; class DiagramEditorPreviewDlg; class ConfirmEditorDlg; class DiagramCavas; class EditPanel : public QWidget { Q_OBJECT public: EditPanel(QWidget *parent = nullptr); ~EditPanel(); void initByWizardInfo(); void initBlockConnection(); //初始化block之间的连接信息 void showPreview(); //展示预览 void showConfirmDlg(); //展示确认对话框 void showWizard(); DiagramEditorModel* getModel() {return _pModel;} EditScene* getScene() {return m_pEditScene;} QList getBlockItems(EditorItemType typ = EditorItemType::none); //返回block对应的item,如母线,间隔,变压器, none返回所有类型 void setProjectName(const QString& s){_projectName = s;}; QString getProjectName(){return _projectName;} void setUuid(QUuid uid) {_uid = uid;} QUuid getUuid() {return _uid;} void setCavas(QPointer p){_pCavas = p;} QPointer getCavas(){return _pCavas;} void prepareSaveEditor(); //准备保存 void loadEditor(const QString&); public slots: void onWidthChanged(int width); void onContainerSizeChanged(EditContainerItem*); //容器大小改变时调整内部大小 void onItemDbClicked(QPointer); //item双击事件 private: void initial(); void calculateContainerWidth(EditContainerItem*); //根据间隔数量计算容器宽度 todo:区分上下间隔 int getContainerBusType(QMap>); //返回容器中母线类型(单双) EditBaseItem* getItemByName(const QString&); //根据名称获取指定item private: EditView* m_pEditView; EditScene* m_pEditScene; QVBoxLayout* _layout; EditMainRect* _mainWidget; DiagramEditorBayDetailSettingDlg* _bayDetailSetting; DiagramEditorTransDetailSettingDlg* _transDetailSetting; QGraphicsLinearLayout* _widgetLayout; QGraphicsProxyWidget* m_addBtnPro; int _maxWidth; int _maxHeight; QList _lstData; QMap> _mapStruct; DiagramEditorModel* _pModel; DiagramEditorPreviewDlg* _pPreview; ConfirmEditorDlg* _confirmEditor; QString _projectName; QUuid _uid; DiagramEditorWizard* _pEditorWizard; QPointer _pCavas; //顶层界面容器 }; #endif