add custom type extend
This commit is contained in:
parent
8249661f32
commit
765e3d6187
|
|
@ -35,6 +35,7 @@ enum GraphicsItemType
|
|||
GIT_3wTransformer= QGraphicsItem::UserType + 67,
|
||||
GIT_node= QGraphicsItem::UserType + 79,
|
||||
GIT_bay= QGraphicsItem::UserType + 80, //间隔
|
||||
GIT_CustomType= QGraphicsItem::UserType + 81,
|
||||
//======================================
|
||||
GIT_baseNode = QGraphicsItem::UserType + 199,
|
||||
GIT_baseBus = QGraphicsItem::UserType + 200,
|
||||
|
|
@ -52,6 +53,8 @@ enum GraphicsItemType
|
|||
GIT_baseCableEnd = QGraphicsItem::UserType + 212,
|
||||
GIT_base2wTransformer = QGraphicsItem::UserType + 213, //两绕阻变压器
|
||||
GIT_base3wTransformer = QGraphicsItem::UserType + 214, //三绕组变压器
|
||||
GIT_baseMotor = QGraphicsItem::UserType + 215, //电动机
|
||||
GIT_baseCustomItem = QGraphicsItem::UserType + 299 //自定义对象
|
||||
};
|
||||
|
||||
enum AttributeField //元模属性字段对照
|
||||
|
|
|
|||
|
|
@ -126,6 +126,7 @@ set(DIAGRAMCAVAS_HEADER_FILES
|
|||
include/util/selectorManager.h
|
||||
include/util/subMovingSelector.h
|
||||
include/instance/dataAccessor.h
|
||||
include/instance/baseTypeManager.h
|
||||
|
||||
include/propertyType/CustomGadget.h
|
||||
include/propertyType/CustomType.h
|
||||
|
|
@ -278,6 +279,7 @@ set(DIAGRAMCAVAS_SOURCE_FILES
|
|||
source/util/selectorManager.cpp
|
||||
source/util/subMovingSelector.cpp
|
||||
source/instance/dataAccessor.cpp
|
||||
source/instance/baseTypeManager.cpp
|
||||
|
||||
source/propertyType/PropertyTypeCustomization_CustomType.cpp
|
||||
source/propertyType/propertyTypeCustomization_DataSourceType.cpp
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public:
|
|||
void generateTempTrans(int nType,DiagramEditorTransformerBlock* block = nullptr); //0高压侧1中压侧2低压侧3整个变压器
|
||||
void connectTransToNeutral(DiagramEditorTransformerBlock* block); //连接变压器与中性点设备
|
||||
void linkTransItem(GraphicsBaseModelItem*,QStandardItemModel*,DiagramEditorTransformerBlock* pBlock); //连接中性点与设备点
|
||||
GraphicsBaseModelItem* generateComponent(QUuid uid,QString sName,int nCategory,int nType,QPointF pos,int nRotate,int mode,DiagramEditorBaseBlock* pBlock = nullptr); //生成设备 uid,分类(设备、逻辑点),类型,旋转,模式(0局部1整体)
|
||||
GraphicsBaseModelItem* generateComponent(QUuid uid,QString sName,int nCategory,int nType,int baseType,QPointF pos,int nRotate,int mode,DiagramEditorBaseBlock* pBlock = nullptr); //生成设备 uid,分类(设备、逻辑点),基模类型,基础类型,旋转,模式(0局部1整体)
|
||||
ElectricBaseModelLineItem* generateLine(QUuid uid,QString sName,int mode,DiagramEditorBaseBlock* pBlock = nullptr); //生成连线 mode 0局部1整体
|
||||
void clearCurPreview();
|
||||
void setPanel(EditPanel* p) {_pPanel = p;}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
#ifndef BASETYPEMANAGER_H
|
||||
#define BASETYPEMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QMap>
|
||||
#include <QJsonObject>
|
||||
#include <QMutex>
|
||||
#include "common/backend/meta_model.h"
|
||||
|
||||
class BaseTypeManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
explicit BaseTypeManager(QObject *parent = nullptr);
|
||||
|
||||
QMap<int,modelType> _mapType;
|
||||
|
||||
public:
|
||||
// 禁止拷贝和赋值
|
||||
BaseTypeManager(const BaseTypeManager&) = delete;
|
||||
BaseTypeManager& operator=(const BaseTypeManager&) = delete;
|
||||
|
||||
// 获取单例实例
|
||||
static BaseTypeManager* getInstance() {
|
||||
static BaseTypeManager instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
void initial();
|
||||
|
||||
QString getNameById(int id) const;
|
||||
int getBaseTypeById(int id) const;
|
||||
int getIdByName(const QString& name) const;
|
||||
int getIdByModelType(const QString& name) const; //根据基模英文名返回id
|
||||
QMap<int,modelType> getMapType(){return _mapType;}
|
||||
};
|
||||
|
||||
#endif // BIMAPMANAGER_H
|
||||
|
|
@ -11,8 +11,6 @@
|
|||
#include "graphicsItem/graphicsBaseItem.h"
|
||||
#include "topologyManager.h"
|
||||
#include "powerEntity.h"
|
||||
#include "projectModelManager.h"
|
||||
#include "baseProperty.h"
|
||||
#include "diagramEditor/editPanel.h"
|
||||
#include "graphicsDataModel/diagramEditorModel.h"
|
||||
#include "basePropertyManager.h"
|
||||
|
|
@ -31,6 +29,7 @@
|
|||
#include "QQuickDetailsViewMananger.h"
|
||||
#include "propertyType/propertyTypeCustomization_DataSourceType.h"
|
||||
#include "propertyType/dataSourceType.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
DiagramCavas::DiagramCavas(QWidget *parent)
|
||||
: QMdiArea(parent)
|
||||
|
|
@ -179,6 +178,7 @@ void DiagramCavas::initial()
|
|||
_structDataPreviewDlg->loadData();
|
||||
|
||||
QQuickDetailsViewManager::Get()->registerPropertyTypeCustomization<DataSourceType, PropertyTypeCustomization_DataSourceType>();
|
||||
BaseTypeManager::getInstance()->initial();
|
||||
}
|
||||
|
||||
void DiagramCavas::onSignal_addDrawingPanel(PowerEntity* pItem,DiagramMode mode,QString parent)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "ui_diagramEditorBayDetailAddDlg.h"
|
||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
DiagramEditorBayDetailAddDlg::DiagramEditorBayDetailAddDlg(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
|
|
@ -40,22 +41,16 @@ void DiagramEditorBayDetailAddDlg::initial()
|
|||
connect(ui->tableView_selected, &QTableView::customContextMenuRequested, this, &DiagramEditorBayDetailAddDlg::onRouteRbtnClicked);
|
||||
connect(ui->tableView_items, &QTableView::customContextMenuRequested, this, &DiagramEditorBayDetailAddDlg::onComponentRbtnClicked);
|
||||
|
||||
QMap<int,modelType> mapType = BaseTypeManager::getInstance()->getMapType(); //直接添加数据库中的基础类型
|
||||
for(auto iter = mapType.begin();iter != mapType.end();++iter){
|
||||
int index = ui->cb_type->count();
|
||||
ui->cb_type->addItem(iter.value().modelName);
|
||||
ui->cb_type->setItemData(index,iter->id,Qt::UserRole); //存放基模id
|
||||
ui->cb_type->setItemData(index,iter->graphicElement,Qt::UserRole+1); //存放基础类型
|
||||
}
|
||||
|
||||
ui->cb_category->addItem("电气设备",0);
|
||||
ui->cb_category->addItem("连接关系",1);
|
||||
ui->cb_type->addItem("母线",1);
|
||||
ui->cb_type->addItem("异步电动机",2);
|
||||
ui->cb_type->addItem("断路器",3);
|
||||
ui->cb_type->addItem("电缆",4);
|
||||
ui->cb_type->addItem("电流互感器",5);
|
||||
ui->cb_type->addItem("电压互感器",6);
|
||||
ui->cb_type->addItem("隔离开关",7);
|
||||
ui->cb_type->addItem("接地开关",8);
|
||||
ui->cb_type->addItem("快速接地开关",9);
|
||||
ui->cb_type->addItem("双掷接地隔离开关",10);
|
||||
ui->cb_type->addItem("带电指示器",11);
|
||||
ui->cb_type->addItem("避雷器",12);
|
||||
ui->cb_type->addItem("电缆出线套筒",13);
|
||||
ui->cb_type->addItem("电缆端",14);
|
||||
|
||||
ui->tableView_items->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->tableView_items->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
|
@ -170,52 +165,11 @@ void DiagramEditorBayDetailAddDlg::showDlg(DiagramEditorRouteInfo info)
|
|||
QString sType;
|
||||
if(component.nCategory == 0){
|
||||
sCate = "电气设备";
|
||||
if(component.nType == 1){
|
||||
sType = "母线";
|
||||
}
|
||||
else if(component.nType == 2){
|
||||
sType = "异步电动机";
|
||||
}
|
||||
else if(component.nType == 3){
|
||||
sType = "断路器";
|
||||
}
|
||||
else if(component.nType == 4){
|
||||
sType = "电缆";
|
||||
}
|
||||
else if(component.nType == 5){
|
||||
sType = "电流互感器";
|
||||
}
|
||||
else if(component.nType == 6){
|
||||
sType = "电压互感器";
|
||||
}
|
||||
else if(component.nType == 7){
|
||||
sType = "隔离开关";
|
||||
}
|
||||
else if(component.nType == 8){
|
||||
sType = "接地开关";
|
||||
}
|
||||
else if(component.nType == 9){
|
||||
sType = "快速接地开关";
|
||||
}
|
||||
else if(component.nType == 10){
|
||||
sType = "双掷接地隔离开关";
|
||||
}
|
||||
else if(component.nType == 11){
|
||||
sType = "带电指示器";
|
||||
}
|
||||
else if(component.nType == 12){
|
||||
sType = "避雷器";
|
||||
}
|
||||
else if(component.nType == 13){
|
||||
sType = "电缆出线套筒";
|
||||
}
|
||||
else if(component.nType == 14){
|
||||
sType = "电缆端";
|
||||
}
|
||||
sType = BaseTypeManager::getInstance()->getNameById(component.nType); //直接添加数据库中的基础类型
|
||||
}
|
||||
else if(component.nCategory == 1){
|
||||
sCate = "连接关系";
|
||||
if(component.nType == 1){
|
||||
if(component.nType == 0){ //连接点暂时写死
|
||||
sType = "连接点";
|
||||
}
|
||||
}
|
||||
|
|
@ -496,24 +450,16 @@ void DiagramEditorBayDetailAddDlg::onCategoryChanged(const QString& str)
|
|||
{
|
||||
ui->cb_type->clear();
|
||||
if(str == "电气设备"){
|
||||
QStringList lst;
|
||||
ui->cb_type->addItem("母线",1);
|
||||
ui->cb_type->addItem("异步电动机",2);
|
||||
ui->cb_type->addItem("断路器",3);
|
||||
ui->cb_type->addItem("电缆",4);
|
||||
ui->cb_type->addItem("电流互感器",5);
|
||||
ui->cb_type->addItem("电压互感器",6);
|
||||
ui->cb_type->addItem("隔离开关",7);
|
||||
ui->cb_type->addItem("接地开关",8);
|
||||
ui->cb_type->addItem("快速接地开关",9);
|
||||
ui->cb_type->addItem("双掷接地隔离开关",10);
|
||||
ui->cb_type->addItem("带电指示器",11);
|
||||
ui->cb_type->addItem("避雷器",12);
|
||||
ui->cb_type->addItem("电缆出线套筒",13);
|
||||
ui->cb_type->addItem("电缆端",14);
|
||||
QMap<int,modelType> mapType = BaseTypeManager::getInstance()->getMapType(); //直接添加数据库中的基础类型
|
||||
for(auto iter = mapType.begin();iter != mapType.end();++iter){
|
||||
int index = ui->cb_type->count();
|
||||
ui->cb_type->addItem(iter.value().modelName);
|
||||
ui->cb_type->setItemData(index,iter->id,Qt::UserRole); //存放基模id
|
||||
ui->cb_type->setItemData(index,iter->graphicElement,Qt::UserRole+1); //存放基础类型
|
||||
}
|
||||
}
|
||||
else if(str == "连接关系"){
|
||||
ui->cb_type->addItem("连接点",1);
|
||||
ui->cb_type->addItem("连接点",0); //连接点暂时写死为0
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
#include "diagramEditor/diagramEditorBayDetailSettingDlg.h"
|
||||
#include "diagramEditor/diagramEditorBayDetailAddDlg.h"
|
||||
#include "diagramEditor/diagramEditorBayPreviewDlg.h"
|
||||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "ui_diagramEditorBayDetailSettingDlg.h"
|
||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||
#include "graphicsDataModel/diagramEditorModel.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
#include "topologyManager.h"
|
||||
|
||||
DiagramEditorBayDetailSettingDlg::DiagramEditorBayDetailSettingDlg(QWidget *parent,DiagramEditorModel* pModel)
|
||||
|
|
@ -84,70 +84,15 @@ void DiagramEditorBayDetailSettingDlg::refreshModel()
|
|||
QString sType;
|
||||
if(info.nCategory == 0){
|
||||
sCategory = "设备";
|
||||
if(info.nType == 1)
|
||||
{
|
||||
sType = "母线";
|
||||
}
|
||||
else if(info.nType == 2)
|
||||
{
|
||||
sType = "异步电动机";
|
||||
}
|
||||
else if(info.nType == 3)
|
||||
{
|
||||
sType = "断路器";
|
||||
}
|
||||
else if(info.nType == 4)
|
||||
{
|
||||
sType = "电缆";
|
||||
}
|
||||
else if(info.nType == 5)
|
||||
{
|
||||
sType = "电流互感器";
|
||||
}
|
||||
else if(info.nType == 6)
|
||||
{
|
||||
sType = "电压互感器";
|
||||
}
|
||||
else if(info.nType == 7)
|
||||
{
|
||||
sType = "隔离开关";
|
||||
}
|
||||
else if(info.nType == 8)
|
||||
{
|
||||
sType = "接地开关";
|
||||
}
|
||||
else if(info.nType == 9)
|
||||
{
|
||||
sType = "快速接地开关";
|
||||
}
|
||||
else if(info.nType == 10)
|
||||
{
|
||||
sType = "双掷接地隔离开关";
|
||||
}
|
||||
else if(info.nType == 11)
|
||||
{
|
||||
sType = "带电指示器";
|
||||
}
|
||||
else if(info.nType == 12)
|
||||
{
|
||||
sType = "避雷器";
|
||||
}
|
||||
else if(info.nType == 13)
|
||||
{
|
||||
sType = "电缆出线套筒";
|
||||
}
|
||||
else if(info.nType == 14)
|
||||
{
|
||||
sType = "电缆端";
|
||||
}
|
||||
sType = BaseTypeManager::getInstance()->getNameById(info.nType);
|
||||
}
|
||||
else if(info.nCategory == 1){
|
||||
sCategory = "连接关系";
|
||||
if(info.nType == 1){
|
||||
if(info.nType == 0){ //连接点暂时写死
|
||||
sType = "连接点";
|
||||
}
|
||||
}
|
||||
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(info.nType);
|
||||
itemCate->setText(sCategory);
|
||||
itemCate->setData(info.nCategory);
|
||||
itemName->setText(info.sName);
|
||||
|
|
@ -158,6 +103,7 @@ void DiagramEditorBayDetailSettingDlg::refreshModel()
|
|||
itemName->setData(info.nRotate,Qt::UserRole+5);
|
||||
itemType->setText(sType);
|
||||
itemType->setData(info.nType);
|
||||
itemType->setData(nBaseType,Qt::UserRole+2);
|
||||
itemObj->setText(info.sBindObj);
|
||||
itemObj->setData(info.nBindType);
|
||||
itemObj->setData(info.nBindPara,Qt::UserRole+2);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "ui_diagramEditorTransDetailAddDlg.h"
|
||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
DiagramEditorTransDetailAddDlg::DiagramEditorTransDetailAddDlg(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
|
|
@ -40,22 +41,15 @@ void DiagramEditorTransDetailAddDlg::initial()
|
|||
connect(ui->tableView_selected, &QTableView::customContextMenuRequested, this, &DiagramEditorTransDetailAddDlg::onRouteRbtnClicked);
|
||||
connect(ui->tableView_items, &QTableView::customContextMenuRequested, this, &DiagramEditorTransDetailAddDlg::onComponentRbtnClicked);
|
||||
|
||||
QMap<int,modelType> mapType = BaseTypeManager::getInstance()->getMapType(); //直接添加数据库中的基础类型
|
||||
for(auto iter = mapType.begin();iter != mapType.end();++iter){
|
||||
int index = ui->cb_type->count();
|
||||
ui->cb_type->addItem(iter.value().modelName);
|
||||
ui->cb_type->setItemData(index,iter->id,Qt::UserRole); //存放基模id
|
||||
ui->cb_type->setItemData(index,iter->graphicElement,Qt::UserRole+1); //存放基础类型
|
||||
}
|
||||
ui->cb_category->addItem("电气设备",0);
|
||||
ui->cb_category->addItem("连接关系",1);
|
||||
ui->cb_type->addItem("母线",1);
|
||||
ui->cb_type->addItem("异步电动机",2);
|
||||
ui->cb_type->addItem("断路器",3);
|
||||
ui->cb_type->addItem("电缆",4);
|
||||
ui->cb_type->addItem("电流互感器",5);
|
||||
ui->cb_type->addItem("电压互感器",6);
|
||||
ui->cb_type->addItem("隔离开关",7);
|
||||
ui->cb_type->addItem("接地开关",8);
|
||||
ui->cb_type->addItem("快速接地开关",9);
|
||||
ui->cb_type->addItem("双掷接地隔离开关",10);
|
||||
ui->cb_type->addItem("带电指示器",11);
|
||||
ui->cb_type->addItem("避雷器",12);
|
||||
ui->cb_type->addItem("电缆出线套筒",13);
|
||||
ui->cb_type->addItem("电缆端",14);
|
||||
|
||||
ui->tableView_items->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
ui->tableView_items->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
|
@ -110,52 +104,11 @@ void DiagramEditorTransDetailAddDlg::showDlg(DiagramEditorRouteInfo info)
|
|||
QString sType;
|
||||
if(component.nCategory == 0){
|
||||
sCate = "电气设备";
|
||||
if(component.nType == 1){
|
||||
sType = "母线";
|
||||
}
|
||||
else if(component.nType == 2){
|
||||
sType = "异步电动机";
|
||||
}
|
||||
else if(component.nType == 3){
|
||||
sType = "断路器";
|
||||
}
|
||||
else if(component.nType == 4){
|
||||
sType = "电缆";
|
||||
}
|
||||
else if(component.nType == 5){
|
||||
sType = "电流互感器";
|
||||
}
|
||||
else if(component.nType == 6){
|
||||
sType = "电压互感器";
|
||||
}
|
||||
else if(component.nType == 7){
|
||||
sType = "隔离开关";
|
||||
}
|
||||
else if(component.nType == 8){
|
||||
sType = "接地开关";
|
||||
}
|
||||
else if(component.nType == 9){
|
||||
sType = "快速接地开关";
|
||||
}
|
||||
else if(component.nType == 10){
|
||||
sType = "双掷接地隔离开关";
|
||||
}
|
||||
else if(component.nType == 11){
|
||||
sType = "带电指示器";
|
||||
}
|
||||
else if(component.nType == 12){
|
||||
sType = "避雷器";
|
||||
}
|
||||
else if(component.nType == 13){
|
||||
sType = "电缆出线套筒";
|
||||
}
|
||||
else if(component.nType == 14){
|
||||
sType = "电缆端";
|
||||
}
|
||||
sType = BaseTypeManager::getInstance()->getNameById(component.nType);
|
||||
}
|
||||
else if(component.nCategory == 1){
|
||||
sCate = "连接关系";
|
||||
if(component.nType == 1){
|
||||
if(component.nType == 0){ //连接点暂时写死
|
||||
sType = "连接点";
|
||||
}
|
||||
}
|
||||
|
|
@ -481,21 +434,13 @@ void DiagramEditorTransDetailAddDlg::onCategoryChanged(const QString& str)
|
|||
{
|
||||
ui->cb_type->clear();
|
||||
if(str == "电气设备"){
|
||||
QStringList lst;
|
||||
ui->cb_type->addItem("母线",1);
|
||||
ui->cb_type->addItem("异步电动机",2);
|
||||
ui->cb_type->addItem("断路器",3);
|
||||
ui->cb_type->addItem("电缆",4);
|
||||
ui->cb_type->addItem("电流互感器",5);
|
||||
ui->cb_type->addItem("电压互感器",6);
|
||||
ui->cb_type->addItem("隔离开关",7);
|
||||
ui->cb_type->addItem("接地开关",8);
|
||||
ui->cb_type->addItem("快速接地开关",9);
|
||||
ui->cb_type->addItem("双掷接地隔离开关",10);
|
||||
ui->cb_type->addItem("带电指示器",11);
|
||||
ui->cb_type->addItem("避雷器",12);
|
||||
ui->cb_type->addItem("电缆出线套筒",13);
|
||||
ui->cb_type->addItem("电缆端",14);
|
||||
QMap<int,modelType> mapType = BaseTypeManager::getInstance()->getMapType(); //直接添加数据库中的基础类型
|
||||
for(auto iter = mapType.begin();iter != mapType.end();++iter){
|
||||
int index = ui->cb_type->count();
|
||||
ui->cb_type->addItem(iter.value().modelName);
|
||||
ui->cb_type->setItemData(index,iter->id,Qt::UserRole); //存放基模id
|
||||
ui->cb_type->setItemData(index,iter->graphicElement,Qt::UserRole+1); //存放基础类型
|
||||
}
|
||||
}
|
||||
else if(str == "连接关系"){
|
||||
ui->cb_type->addItem("连接点",1);
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
#include "diagramEditor/diagramEditorTransDetailSettingDlg.h"
|
||||
#include "diagramEditor/diagramEditorTransDetailAddDlg.h"
|
||||
#include "diagramEditor/diagramEditorTransPreviewDlg.h"
|
||||
#include "diagramEditor/diagramEditorWizard.h"
|
||||
#include "ui_diagramEditorTransDetailSettingDlg.h"
|
||||
#include "diagramEditor/diagramEditorBaseBlock.h"
|
||||
#include "graphicsDataModel/diagramEditorModel.h"
|
||||
#include "topologyManager.h"
|
||||
#include "diagramEditor/diagramEditorTransPreviewDlg.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
DiagramEditorTransDetailSettingDlg::DiagramEditorTransDetailSettingDlg(QWidget *parent,DiagramEditorModel* pModel)
|
||||
: QDialog(parent)
|
||||
|
|
@ -108,69 +108,18 @@ void DiagramEditorTransDetailSettingDlg::refreshModel()
|
|||
QStandardItem *itemObj = new QStandardItem();
|
||||
QStandardItem *itemRoute = new QStandardItem();
|
||||
QString sCategory;
|
||||
QString sType;
|
||||
if(info.nCategory == 0){
|
||||
sCategory = "设备";
|
||||
sType = BaseTypeManager::getInstance()->getNameById(info.nType);
|
||||
}
|
||||
else if(info.nCategory == 1){
|
||||
sCategory = "连接关系";
|
||||
if(info.nType == 0){ //连接点暂时写死
|
||||
sType = "连接点";
|
||||
}
|
||||
}
|
||||
QString sType;
|
||||
if(info.nType == 1)
|
||||
{
|
||||
sType = "母线";
|
||||
}
|
||||
else if(info.nType == 2)
|
||||
{
|
||||
sType = "异步电动机";
|
||||
}
|
||||
else if(info.nType == 3)
|
||||
{
|
||||
sType = "断路器";
|
||||
}
|
||||
else if(info.nType == 4)
|
||||
{
|
||||
sType = "电缆";
|
||||
}
|
||||
else if(info.nType == 5)
|
||||
{
|
||||
sType = "电流互感器";
|
||||
}
|
||||
else if(info.nType == 6)
|
||||
{
|
||||
sType = "电压互感器";
|
||||
}
|
||||
else if(info.nType == 7)
|
||||
{
|
||||
sType = "隔离开关";
|
||||
}
|
||||
else if(info.nType == 8)
|
||||
{
|
||||
sType = "接地开关";
|
||||
}
|
||||
else if(info.nType == 9)
|
||||
{
|
||||
sType = "快速接地开关";
|
||||
}
|
||||
else if(info.nType == 10)
|
||||
{
|
||||
sType = "双掷接地隔离开关";
|
||||
}
|
||||
else if(info.nType == 11)
|
||||
{
|
||||
sType = "带点指示器";
|
||||
}
|
||||
else if(info.nType == 12)
|
||||
{
|
||||
sType = "避雷器";
|
||||
}
|
||||
else if(info.nType == 13)
|
||||
{
|
||||
sType = "电缆出线套筒";
|
||||
}
|
||||
else if(info.nType == 14)
|
||||
{
|
||||
sType = "电缆端";
|
||||
}
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(info.nType);
|
||||
itemCate->setText(sCategory);
|
||||
itemCate->setData(info.nCategory);
|
||||
itemName->setText(info.sName);
|
||||
|
|
@ -181,6 +130,7 @@ void DiagramEditorTransDetailSettingDlg::refreshModel()
|
|||
itemName->setData(info.nRotate,Qt::UserRole+5);
|
||||
itemType->setText(sType);
|
||||
itemType->setData(info.nType);
|
||||
itemType->setData(nBaseType,Qt::UserRole+2);
|
||||
itemObj->setText(info.sBindObj);
|
||||
itemObj->setData(info.nBindType);
|
||||
itemObj->setData(info.nBindPara,Qt::UserRole+2);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include <QJsonArray>
|
||||
#include <QMetaMethod>
|
||||
#include "common/core_model/constants.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
int g_nCompoWidth = 50; //元件默认宽度(计算布局使用)
|
||||
int g_nCompoHeight = 50;
|
||||
|
|
@ -153,10 +154,9 @@ QRectF DiagramEditorModel::generateTempBay(DiagramEditorBayBlock* p)
|
|||
return itemsRect;
|
||||
}
|
||||
|
||||
GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString sName,int nCategory,int nType,QPointF pos,int nRotate,int mode,DiagramEditorBaseBlock* pBlock)
|
||||
GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString sName,int nCategory,int nType,int baseType,QPointF pos,int nRotate,int mode,DiagramEditorBaseBlock* pBlock)
|
||||
{
|
||||
GraphicsBaseModelItem* pItem = nullptr;
|
||||
int componentType = -1; //对应的componentType
|
||||
if(nCategory == 0)
|
||||
{
|
||||
QByteArray byte;
|
||||
|
|
@ -166,67 +166,64 @@ GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString s
|
|||
pBus->loadSvg(byte);
|
||||
pItem = pBus;
|
||||
pItem->setItemType(GIT_baseBus);
|
||||
componentType = 1;
|
||||
}
|
||||
else if(nType == 2){ //异步电动机
|
||||
componentType = 2;
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pMotor = new ElectricBaseModelSvgItem(QRect(-40, -40, 80, 80));
|
||||
pMotor->loadSvg(byte);
|
||||
pItem = pMotor;
|
||||
pItem->setItemType(GIT_baseMotor);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 3){ //断路器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pBreaker = new ElectricBaseModelSvgItem(QRect(-15, -15, 30, 30));
|
||||
pBreaker->loadSvg(byte);
|
||||
pItem = pBreaker;
|
||||
pItem->setItemType(GIT_baseBreaker);
|
||||
componentType = 3;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 4){ //电缆
|
||||
componentType = 8;
|
||||
}
|
||||
else if(nType == 5){ //电流互感器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pCt= new ElectricBaseModelSvgItem(QRect(-10, -10, 20, 20));
|
||||
pCt->loadSvg(byte);
|
||||
pItem = pCt;
|
||||
pItem->setItemType(GIT_baseCT);
|
||||
componentType = 4;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 6){ //电压互感器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pPt = new ElectricBaseModelSvgItem(QRect(-25, -25, 50, 50));
|
||||
pPt->loadSvg(byte);
|
||||
pItem = pPt;
|
||||
pItem->setItemType(GIT_basePT);
|
||||
componentType = 5;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 7){ //隔离开关
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pDs = new ElectricBaseModelSvgItem(QRect(-15, -15, 30, 30));
|
||||
pDs->loadSvg(byte);
|
||||
pItem = pDs;
|
||||
pItem->setItemType(GIT_baseDS);
|
||||
componentType = 9;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 8){ //接地开关
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pEs = new ElectricBaseModelSvgItem(QRect(-15, -30, 30, 60));
|
||||
pEs->loadSvg(byte);
|
||||
pItem = pEs;
|
||||
pItem->setItemType(GIT_baseES);
|
||||
componentType = 6;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 9){ //快速接地开关
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pFEs = new ElectricBaseModelSvgItem(QRect(-15, -30, 30, 60));
|
||||
pFEs->loadSvg(byte);
|
||||
pItem = pFEs;
|
||||
pItem->setItemType(GIT_baseFES);
|
||||
componentType = 7;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 10){ //双掷接地隔离开关
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
|
|
@ -234,17 +231,15 @@ GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString s
|
|||
pDtedes->loadSvg(byte);
|
||||
pItem = pDtedes;
|
||||
pItem->setItemType(GIT_baseDTEDS);
|
||||
componentType = 10;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 11){ //带电指示器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pPi = new ElectricBaseModelSvgItem(QRect(-15, -30, 30, 60));
|
||||
pPi->loadSvg(byte);
|
||||
pItem = pPi;
|
||||
pItem->setItemType(GIT_basePI);
|
||||
componentType = 11;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 12){ //避雷器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
|
|
@ -252,11 +247,16 @@ GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString s
|
|||
pPi->loadSvg(byte);
|
||||
pItem = pPi;
|
||||
pItem->setItemType(GIT_baseLightningArrester);
|
||||
componentType = 12;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 13){ //电缆出线套筒
|
||||
componentType = 13;
|
||||
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pCableTer = new ElectricBaseModelSvgItem(QRect(-10, -10, 20, 20));
|
||||
pCableTer->loadSvg(byte);
|
||||
pItem = pCableTer;
|
||||
pItem->setItemType(GIT_baseCableTer);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 14){ //电缆端
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
|
|
@ -264,30 +264,35 @@ GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString s
|
|||
pCableEnd->loadSvg(byte);
|
||||
pItem = pCableEnd;
|
||||
pItem->setItemType(GIT_baseCableEnd);
|
||||
componentType = 14;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 15){ //两绕组变压器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto p2W = new ElectricBaseModelSvgItem(QRect(-50, -50, 100, 100));
|
||||
p2W->loadSvg(byte);
|
||||
pItem = p2W;
|
||||
pItem->setItemType(GIT_base2wTransformer);
|
||||
componentType = 15;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else if(nType == 16){ //三绕组变压器
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon; //注意modelType表与componentType表不一致!
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto p3W = new ElectricBaseModelSvgItem(QRect(-75, -50, 150, 100));
|
||||
p3W->loadSvg(byte);
|
||||
pItem = p3W;
|
||||
pItem->setItemType(GIT_base3wTransformer);
|
||||
componentType = 16;
|
||||
pItem->initialPortsByDatabase(componentType);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
else{ //自定义类型
|
||||
byte = DataBase::GetInstance()->ModelType()[nType].icon;
|
||||
auto pCustom = new ElectricBaseModelSvgItem(QRect(-30, -30, 60, 60));
|
||||
pCustom->loadSvg(byte);
|
||||
pItem = pCustom;
|
||||
pItem->setItemType(GIT_baseCustomItem);
|
||||
pItem->initialPortsByDatabase(baseType);
|
||||
}
|
||||
}
|
||||
else if(nCategory == 1){
|
||||
if(nType == 1){ //节点
|
||||
if(nType == 0){ //节点
|
||||
pItem = new ElectricBaseModelPortItem();
|
||||
pItem->setItemType(GIT_baseNode);
|
||||
}
|
||||
|
|
@ -320,7 +325,7 @@ GraphicsBaseModelItem* DiagramEditorModel::generateComponent(QUuid uid,QString s
|
|||
pData->setGraphicsType(pItem->getItemType());
|
||||
}
|
||||
else if(nCategory == 0){ //设备
|
||||
pData = addPreviewData(uid,componentType,sName,DataBase::GetInstance()->ModelType()[nType].modelType,sBay,mode);
|
||||
pData = addPreviewData(uid,baseType,sName,DataBase::GetInstance()->ModelType()[nType].modelType,sBay,mode);
|
||||
pData->setGraphicsType(pItem->getItemType());
|
||||
}
|
||||
if(pData)
|
||||
|
|
@ -422,7 +427,9 @@ void DiagramEditorModel::connectTransToNeutral(DiagramEditorTransformerBlock* bl
|
|||
else if(typ == TransformerType::threeWinding){
|
||||
nT = 16;
|
||||
}
|
||||
generateComponent(uid,sName,0,nT,QPoint(0,0),0,0,block);
|
||||
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(nT);
|
||||
generateComponent(uid,sName,0,nT,nBaseType,QPoint(0,0),0,0,block);
|
||||
|
||||
auto pTransItem = _tempItem.value(uid);
|
||||
if(pTransItem){
|
||||
|
|
@ -534,7 +541,8 @@ void DiagramEditorModel::generatePreview(bool bVisible)
|
|||
QPointF pos = item->scenePos();
|
||||
if(_previewItem.contains(uid))
|
||||
continue;
|
||||
auto pItem = generateComponent(uid,name,0,1,pos,0,1,pBus);
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(1);
|
||||
auto pItem = generateComponent(uid,name,0,1,nBaseType,pos,0,1,pBus);
|
||||
pBus->addSubList(qMakePair(0,uid));
|
||||
if(nMaxLen > rec.width())
|
||||
rec.setWidth(nMaxLen);
|
||||
|
|
@ -625,7 +633,8 @@ void DiagramEditorModel::generatePreview(bool bVisible)
|
|||
nType = 15;
|
||||
else
|
||||
nType = 16;
|
||||
auto pItem = generateComponent(uid,name,0,nType,pos,0,1,pTrans);
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(nType);
|
||||
auto pItem = generateComponent(uid,name,0,nType,nBaseType,pos,0,1,pTrans);
|
||||
auto pro = pItem->getProperty();
|
||||
|
||||
QRectF rect = item->boundingRect();
|
||||
|
|
@ -1130,8 +1139,10 @@ void DiagramEditorModel::generateItemByModel(QStandardItemModel* pModel,DiagramE
|
|||
QPoint pos = pItem->data(Qt::UserRole+2).toPoint();
|
||||
pos += delta;
|
||||
QUuid uid = pItem->data(Qt::UserRole+3).toUuid();
|
||||
if(!_tempItem.contains(uid))
|
||||
generateComponent(uid,name,nCate,nType,pos,nRotate,0,pBlock);
|
||||
if(!_tempItem.contains(uid)){
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(nType);
|
||||
generateComponent(uid,name,nCate,nType,nBaseType,pos,nRotate,0,pBlock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1181,7 +1192,8 @@ QList<DiagramEditorComponentInfo> DiagramEditorModel::generateItemByInfo(QMap<QS
|
|||
auto info = mapCompo.value(compo.sName);
|
||||
if(_previewItem.contains(info.uid))
|
||||
continue;
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(info.nType);
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,nBaseType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
if(!info.sBindObj.isEmpty() && info.sBindObj != QString::fromWCharArray(L"无")){ //非空且不是无
|
||||
if(!lstBind.contains(info))
|
||||
lstBind.append(info);
|
||||
|
|
@ -1206,7 +1218,8 @@ QList<DiagramEditorComponentInfo> DiagramEditorModel::generateItemByInfo(QMap<QS
|
|||
auto info = mapCompo.value(compo.sName);
|
||||
if(_previewItem.contains(info.uid))
|
||||
continue;
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(info.nType);
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,nBaseType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
if(!info.sBindObj.isEmpty() && info.sBindObj != QString::fromWCharArray(L"无")){ //非空且不是无
|
||||
if(!lstBind.contains(info))
|
||||
lstBind.append(info);
|
||||
|
|
@ -1217,7 +1230,8 @@ QList<DiagramEditorComponentInfo> DiagramEditorModel::generateItemByInfo(QMap<QS
|
|||
auto info = mapCompo.value(compo.sName);
|
||||
if(_previewItem.contains(info.uid))
|
||||
continue;
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
int nBaseType = BaseTypeManager::getInstance()->getBaseTypeById(info.nType);
|
||||
generateComponent(info.uid,info.sName,info.nCategory,info.nType,nBaseType,info.deltaPos+delta,info.nRotate,1,pParent);
|
||||
if(!info.sBindObj.isEmpty() && info.sBindObj != QString::fromWCharArray(L"无")){ //非空且不是无
|
||||
if(!lstBind.contains(info))
|
||||
lstBind.append(info);
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@
|
|||
#include "graphicsItem/handleText.h"
|
||||
#include "bayMeasureDlg.h"
|
||||
#include "basePannelPropertyProxy.h"
|
||||
//#include "global.h"
|
||||
#include "common/core_model/types.h"
|
||||
#include "include/instance/baseTypeManager.h"
|
||||
|
||||
bool FixedPortsModel::_dataInitialised = false;
|
||||
|
||||
|
|
@ -2267,7 +2267,6 @@ void FixedPortsModel::onWizardFinished(QMap<QUuid,GraphicsBaseModelItem*> mapIte
|
|||
pPro->setGraphicsType(pro->graphicsType());
|
||||
}
|
||||
}
|
||||
//pPanel->getModelController()->addTestData();
|
||||
|
||||
QList<HierarchyItem> lstItem;
|
||||
for(auto pItem:mapItem){
|
||||
|
|
@ -2608,6 +2607,8 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
pPro->setBay(sBay);
|
||||
pPro->setVoltageLevel(pBase->getVoltageLevel());
|
||||
|
||||
int nBaseTypeId = BaseTypeManager::getInstance()->getIdByModelType(pBase->metaModelName());
|
||||
|
||||
QString sMeta = pBase->metaModelName();
|
||||
QString sModel = pBase->modelName();
|
||||
int type = pBase->graphicsType();
|
||||
|
|
@ -2621,7 +2622,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[1].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2638,7 +2639,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[3].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2657,7 +2658,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
QByteArray svg2;
|
||||
QMap<QString,QByteArray> mapSvg = pBase->getModelProperty().modelSetting.mapSvg;
|
||||
if(mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[5].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
svg2 = svg;
|
||||
}
|
||||
else{
|
||||
|
|
@ -2683,7 +2684,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
QByteArray svg2;
|
||||
QMap<QString,QByteArray> mapSvg = pBase->getModelProperty().modelSetting.mapSvg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[6].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
svg2 = svg;
|
||||
}
|
||||
else{
|
||||
|
|
@ -2708,7 +2709,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[8].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2725,7 +2726,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[7].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2742,7 +2743,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[9].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2759,7 +2760,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[10].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2776,7 +2777,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[11].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2793,7 +2794,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[12].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2810,7 +2811,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[13].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2827,7 +2828,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[14].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2844,7 +2845,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[15].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2861,7 +2862,7 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[16].icon;
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
|
|
@ -2881,6 +2882,23 @@ void FixedPortsModel::addProjectItemByBaseData(DrawingPanel* pPanel,GraphicsBase
|
|||
pProItem->setItemType(GIT_link);
|
||||
pPanel->getScene()->addItem(pProItem);
|
||||
}
|
||||
else if(type == GIT_baseCustomItem)
|
||||
{
|
||||
QByteArray svg;
|
||||
if(pBase->getModelProperty().modelSetting.mapSvg.isEmpty()){
|
||||
svg = DataBase::GetInstance()->ModelType()[nBaseTypeId].icon;
|
||||
}
|
||||
else{
|
||||
svg = pBase->getModelProperty().modelSetting.mapSvg.first();
|
||||
}
|
||||
ProjectModelManager::instance().getData()[sMeta][sModel].modelSetting.mapUsedSvg["customType"] = svg;
|
||||
QRectF rec = pBaseItem->boundingRect();
|
||||
auto pCustom = new ElectricSvgItem(rec.toRect());
|
||||
pCustom->updateMapSvg(ProjectModelManager::instance().getData()[sMeta][sModel].modelSetting.mapUsedSvg);
|
||||
pCustom->loadSvg(svg);
|
||||
pProItem = pCustom;
|
||||
pProItem->setItemType(GIT_CustomType);
|
||||
}
|
||||
|
||||
if(pBase->graphicsType() != GIT_baseLine) //非连接线对象
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
#include "include/instance/baseTypeManager.h"
|
||||
#include "dataBase.h"
|
||||
#include <QJsonDocument>
|
||||
#include <QFile>
|
||||
|
||||
// 构造函数
|
||||
BaseTypeManager::BaseTypeManager(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void BaseTypeManager::initial() {
|
||||
|
||||
_mapType = DataBase::GetInstance()->ModelType();
|
||||
}
|
||||
|
||||
// 通过id获取名称
|
||||
QString BaseTypeManager::getNameById(int id) const
|
||||
{
|
||||
if(_mapType.contains(id)){
|
||||
return _mapType.value(id).modelName;
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
int BaseTypeManager::getBaseTypeById(int id) const
|
||||
{
|
||||
if(_mapType.contains(id)){
|
||||
return _mapType.value(id).graphicElement;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// 通过名称获取id
|
||||
int BaseTypeManager::getIdByName(const QString& name) const
|
||||
{
|
||||
for(auto iter = _mapType.begin(); iter != _mapType.end();++iter){
|
||||
if(name == iter->modelName)
|
||||
return iter.key();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int BaseTypeManager::getIdByModelType(const QString& str) const
|
||||
{
|
||||
for(auto iter = _mapType.begin(); iter != _mapType.end();++iter){
|
||||
if(str == iter->modelType)
|
||||
return iter.key();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>DiagramDesigner</string>
|
||||
<string>GridFrame</string>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"> QMenuBar#menubar {
|
||||
|
|
|
|||
Loading…
Reference in New Issue