DiagramDesigner/diagramCavas/include/diagramEditor/diagramEditorWizard.h

90 lines
4.1 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.

#ifndef DIAGRAMEDITORWIZARD_H
#define DIAGRAMEDITORWIZARD_H
#include <QDialog>
#include "global.h"
QT_BEGIN_NAMESPACE
namespace Ui { class diagramEditorWizard; }
QT_END_NAMESPACE
class WizardBayContentDlg;
class DiagramEditorBaseBlock;
class DiagramEditorStructContainer;
class QListWidgetItem;
class DiagramEditorBaySettingDlg;
class DiagramEditorTransSettingDlg;
class DiagramEditorWizard : public QDialog
{
Q_OBJECT
public:
DiagramEditorWizard(QWidget *parent = nullptr);
~DiagramEditorWizard();
signals:
void wizardFinish();
public slots:
void onOkClicked();
void onCancelClicked();
void onLastClicked();
void onNextClicked();
void onAddBusClicked(); //添加母线
void onAddBayClicked(); //添加间隔
void onAddTransClicked(); //添加变压器
void onAddBayFinished(DiagramEditorWizardBayInfo); //添加间隔完毕
void onAddTransFinished(DiagramEditorWizardTransformerInfo); //添加变压器完毕
void onDelegateFinishEdit(const QModelIndex &index, const QString &value); //代理edit完成事件
void onBusDeleteClicked();
void onBusIndexRbtnClicked(const QPoint &pos); //bus列表右键菜单
void onTransDeleteClicked();
void onTransModifyClicked();
void onTransIndexRbtnClicked(const QPoint &pos); //变压器列表右键菜单
void onBayListSelected(QListWidgetItem* pItem); //baylist选择事件
public:
QMap<int,DiagramEditorWizardBusInfo> getMapBusInfo() {return _mapBus;}
QMap<int,QList<DiagramEditorStructContainer*>>& getContainerStruct(){return _mapSturctContainer;}
QList<DiagramEditorBaseBlock*> getTargetLevelBlocks(int nLevel,int nType); //返回指定层数的对应blocktype:1母线,2间隔,3变压器
QList<DiagramEditorBaseBlock*> getTargetLevelBlocks_all(int nLevel);
DiagramEditorStructContainer* getContainerByBlock(int nLevel,int nType,QString sName); //根据block名称返回container nType:1母线2间隔3变压器
DiagramEditorStructContainer* getContainerByBlock_all(QString sName);
DiagramEditorBaseBlock* getBlockByName(int nLevel,int nType,QString sName); //根据名称返回block
DiagramEditorBaseBlock* getBlockByName_all(QString sName);
bool removeBlockByName(int nLevel,int nType,const QString& sName); //依据名称删除block
WizardBayContentDlg* getContentDlg() {return _bayContentDlg;}
DiagramEditorBaySettingDlg* getBaySettingDlg() {return _baySettingDlg;}
void flushTransPage(); //刷新变压器界面
int getContainerIndex(int nLevel,DiagramEditorStructContainer*); //返回目标层级container的序号
QUuid addConnection(const QString& str1,const QString& str2,int nType1,int nType2,int nPara = 0); //插入连接
QMap<QUuid,DiagramEditorBriefConnect>& getConnection() {return _mapConnect;}
QList<QUuid> findConnectionByBlock(QString,int); //通过block找到连接
void removeConnection(QUuid);
DiagramEditorProjectInfo getCurPara(); //获取当前的向导设置参数(同步数据到projectManager)
void setPara(DiagramEditorProjectInfo); //使用load数据初始化
private:
void initial();
void reOrderBus(); //重置bus次序
void generateBayStruct(); //根据bus设置生成bay结构
void addTransformer(DiagramEditorWizardTransformerInfo); //界面上添加变压器
template <typename T> void reindexQMap(QMap<int, T> &map); //重新排序函数
void clearTargetLevelContent(int); //清除目标层的数据
void resetBusByData(); //根据数据设置bus界面
void resetBayByData();
void resetTransByData();
private:
Ui::diagramEditorWizard *ui;
BiDirectionalMap<int,QString> _divideType; //划分段数名对照
WizardBayContentDlg* _bayContentDlg;
DiagramEditorBaySettingDlg* _baySettingDlg;
DiagramEditorTransSettingDlg* _transSettingDlg;
QMap<int,DiagramEditorWizardBusInfo> _mapBus; //母线信息
QMap<int,QList<DiagramEditorStructContainer*>> _mapSturctContainer; //划分后的区块
QMap<QUuid,DiagramEditorBriefConnect> _mapConnect; //连接列表
};
#endif