DiagramDesigner/diagramCavas/include/diagramEditor/diagramEditorWizard.h

75 lines
3.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,QMap<int,DiagramEditorStructContainer*>> getCointainerStruct(){return _mapSturctContainer;}
QList<DiagramEditorBaseBlock*> getTargetLevelBlocks(int nLevel,int nType); //返回指定层数的对应blocktype:1母线,2间隔,3变压器
DiagramEditorStructContainer* getContainerByBlock(int nLevel,int nType,QString sName); //根据block名称返回container
DiagramEditorBaseBlock* getBlockByName(int nLevel,int nType,QString sName); //根据名称返回block
bool removeBlockByName(int nLevel,int nType,const QString& sName); //依据名称删除block
WizardBayContentDlg* getContentDlg() {return _bayContentDlg;}
DiagramEditorBaySettingDlg* getBaySettingDlg() {return _baySettingDlg;}
void flushTransPage(); //刷新变压器界面
private:
void initial();
void reOrderBus(); //重置bus次序
void generateBayStruct(); //根据bus设置生成bay结构
void addTransformer(DiagramEditorWizardTransformerInfo); //界面上添加变压器
template <typename T> void reindexQMap(QMap<int, T> &map); //重新排序函数
private:
Ui::diagramEditorWizard *ui;
BiDirectionalMap<int,QString> _divideType; //划分段数名对照
WizardBayContentDlg* _bayContentDlg;
DiagramEditorBaySettingDlg* _baySettingDlg;
DiagramEditorTransSettingDlg* _transSettingDlg;
QMap<int,DiagramEditorWizardBusInfo> _mapBus; //母线信息
QMap<int,QMap<int,DiagramEditorStructContainer*>> _mapSturctContainer; //划分后的区块
bool _busPageChanged; //母线页改变
};
#endif