#include "graphicsItem/electricSvgItemBus.h" #include "graphicsItem/itemControlHandle.h" #include "graphicsItem/itemPort.h" #include "graphicsDataModel/fixedPortsModel.h" #include "baseProperty.h" #include #include #include #include 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 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"); }