DiagramDesigner/diagramCavas/source/graphicsItem/electricSvgItemBus.cpp

74 lines
1.8 KiB
C++

#include "graphicsItem/electricSvgItemBus.h"
#include "graphicsItem/itemControlHandle.h"
#include "graphicsItem/itemPort.h"
#include "graphicsItem/electricConnectLineItem.h"
#include <QPainter>
#include <QStyleOption>
#include <QJsonArray>
ElectricSvgItemBus::ElectricSvgItemBus(const QRect &rect, QGraphicsItem *parent)
: ElectricSvgItem(rect,parent)
{
loadSvg(":/images/element/svg_bus.svg");
setHandleIfShow(H_textCaption,false);
setHandleVisible(false);
setFunctionHandleIfShow(false);
setFunctionHandleEnaable(false);
setHandleEnaable(H_right,true);
setHandleEnaable(H_left,true);
}
ElectricSvgItemBus::~ElectricSvgItemBus()
{
}
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->getTag();
auto pLine = ptr->getConnectPtr();
port["connectedItem"] = pLine->getOppositeId(m_itemId).toString();
port["x"] = ptr->pos().x();
port["y"] = ptr->pos().y();
arr.push_back(port);
}
}
obj["port"] = arr;
_property->setContext(obj);
}
}
void ElectricSvgItemBus::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
ElectricSvgItem::paint(painter,option,widget);
}
/************************************************************************/
ElectricSvgItemBus_Property::ElectricSvgItemBus_Property(QObject* parent)
:BaseProperty(parent)
{
}
ElectricSvgItemBus_Property::~ElectricSvgItemBus_Property()
{
}