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