116 lines
2.8 KiB
C++
116 lines
2.8 KiB
C++
#include "graphicsItem/electricSvgItemBus.h"
|
|
#include "graphicsItem/itemControlHandle.h"
|
|
#include "graphicsItem/itemPort.h"
|
|
#include "graphicsDataModel/fixedPortsModel.h"
|
|
#include "baseProperty.h"
|
|
|
|
#include <QSvgRenderer>
|
|
#include <QPainter>
|
|
#include <QStyleOption>
|
|
#include <QJsonArray>
|
|
|
|
ElectricSvgItemBus::ElectricSvgItemBus(const QRect &rect, QGraphicsItem *parent)
|
|
: ElectricSvgItem(rect,parent)
|
|
{
|
|
initial();
|
|
}
|
|
|
|
ElectricSvgItemBus::ElectricSvgItemBus(const ElectricSvgItemBus& obj)
|
|
: ElectricSvgItem(obj)
|
|
{
|
|
initial();
|
|
}
|
|
|
|
ElectricSvgItemBus::~ElectricSvgItemBus()
|
|
{
|
|
|
|
}
|
|
|
|
ElectricSvgItemBus* ElectricSvgItemBus::clone() const
|
|
{
|
|
return new ElectricSvgItemBus(*this);
|
|
}
|
|
|
|
void ElectricSvgItemBus::setImage_1(QFileInfo info)
|
|
{
|
|
QByteArray svgData;
|
|
QFile svgFile(info.absoluteFilePath());
|
|
|
|
if (svgFile.open(QIODevice::ReadOnly)) {
|
|
svgData = svgFile.readAll();
|
|
svgFile.close();
|
|
} else {
|
|
qDebug() << "can't open imgfile" << svgFile.errorString();
|
|
}
|
|
|
|
QMap<QString,QByteArray> mapData;
|
|
if(!svgData.isEmpty()){
|
|
mapData["bus"] = svgData;
|
|
updateMapSvg(mapData,"bus");
|
|
loadSvg(svgData);
|
|
updateItem();
|
|
}
|
|
|
|
QString sMeta;
|
|
QString sModel;
|
|
if(_property){
|
|
sMeta = _property->metaModelName();
|
|
sModel = _property->modelName();
|
|
}
|
|
|
|
if(_pHandle && !sMeta.isEmpty() && !sModel.isEmpty())
|
|
_pHandle->updateItemIcon(sMeta,sModel,mapData,"bus");
|
|
|
|
GraphicsBaseItem::setImage_1(info);
|
|
}
|
|
|
|
void ElectricSvgItemBus::updateHandles()
|
|
{
|
|
ElectricSvgItem::updateHandles();
|
|
}
|
|
|
|
void ElectricSvgItemBus::updateConnectData()
|
|
{
|
|
QJsonObject obj;
|
|
QJsonArray arr;
|
|
if(_property)
|
|
{
|
|
for(auto &ptr:m_mapPort)
|
|
{
|
|
//if(ptr->connected())
|
|
{
|
|
QJsonObject port;
|
|
port["portId"] = ptr->getId();
|
|
//auto pLine = ptr->getConnectPtr();
|
|
port["x"] = ptr->pos().x();
|
|
port["y"] = ptr->pos().y();
|
|
port["portType"] = ptr->getType();
|
|
arr.push_back(port);
|
|
}
|
|
}
|
|
|
|
obj["port"] = arr;
|
|
obj["metaModel"] = _property->metaModelName();
|
|
obj["subList"] = _property->saveSubToJsonArr();
|
|
obj["extraInfo"] = _property->getVoltageLevel();
|
|
_property->setContext(obj);
|
|
}
|
|
}
|
|
|
|
void ElectricSvgItemBus::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
|
{
|
|
ElectricSvgItem::paint(painter,option,widget);
|
|
}
|
|
|
|
void ElectricSvgItemBus::initial()
|
|
{
|
|
setHandleIfShow(H_textCaption,false);
|
|
setHandleVisible(false);
|
|
setFunctionHandleIfShow(false);
|
|
setFunctionHandleEnaable(false);
|
|
setHandleEnaable(H_right,true);
|
|
setHandleEnaable(H_left,true);
|
|
if(!_itemImgIndex.contains("bus"))
|
|
_itemImgIndex.append("bus");
|
|
}
|