DiagramDesigner/diagramCavas/include/diagramEditor/diagramEditorWizard.h

68 lines
2.7 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 DiagramEditorWizard : public QDialog
{
Q_OBJECT
public:
DiagramEditorWizard(QWidget *parent = nullptr);
~DiagramEditorWizard();
signals:
void wizardFinish(DiagramEditorWizardInfo);
public slots:
void onOkClicked();
void onCancelClicked();
void onLastClicked();
void onNextClicked();
void onAddBusClicked(); //添加母线
void onAddBayClicked(); //添加间隔
void onAddTransClicked(); //添加变压器
void onAddBayFinished(DiagramEditorWizardBayInfo); //添加间隔完毕
void onDelegateFinishEdit(const QModelIndex &index, const QString &value); //代理edit完成事件
void onBusDeleteClicked();
void onBusIndexRbtnClicked(const QPoint &pos); //bus列表右键菜单
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间隔
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;}
private:
void initial();
void reOrderBus(); //重置bus次序
void generateBayStruct(); //根据bus设置生成bay结构
void showSelectedBayPage(int); //显示选中的bay页面
template <typename T> void reindexQMap(QMap<int, T> &map); //重新排序函数
private:
Ui::diagramEditorWizard *ui;
BiDirectionalMap<int,QString> _divideType; //划分段数名对照
WizardBayContentDlg* _bayContentDlg;
DiagramEditorBaySettingDlg* _baySettingDlg;
QMap<int,DiagramEditorWizardBusInfo> _mapBus; //母线信息
QMap<int,QMap<int,DiagramEditorStructContainer*>> _mapSturctContainer; //划分后的区块
bool _busPageChanged; //母线页改变
};
#endif