DiagramDesigner/diagramCavas/source/graphicsItem/electricPortItem.cpp

76 lines
1.7 KiB
C++
Raw Normal View History

2025-10-11 18:51:33 +08:00
#include "graphicsItem/electricPortItem.h"
#include "graphicsItem/itemPort.h"
#include "baseProperty.h"
#include <QPainter>
#include <QStyleOption>
#include <QJsonArray>
ElectricPortItem::ElectricPortItem(QGraphicsItem *parent)
: GraphicsProjectModelItem(parent)
{
2025-11-14 19:31:09 +08:00
initial();
}
ElectricPortItem::ElectricPortItem(const ElectricPortItem& obj)
: GraphicsProjectModelItem(obj)
{
initial();
2025-10-11 18:51:33 +08:00
}
ElectricPortItem::~ElectricPortItem()
{
}
2025-11-14 19:31:09 +08:00
ElectricPortItem* ElectricPortItem::clone() const
{
return new ElectricPortItem(*this);
}
2025-10-11 18:51:33 +08:00
QRectF ElectricPortItem::boundingRect() const
{
return m_boundingRect;
}
void ElectricPortItem::updateConnectData()
{
QJsonObject obj;
QJsonArray arr;
if(_property)
{
2025-11-21 19:22:41 +08:00
for(auto& ptr:m_mapPort)
2025-10-11 18:51:33 +08:00
{
//if(ptr->connected())
{
QJsonObject port;
port["portId"] = ptr->getId();
2025-11-21 19:22:41 +08:00
//auto pLine = ptr->getConnectPtr();
2025-10-11 18:51:33 +08:00
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();
_property->setContext(obj);
}
}
void ElectricPortItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
painter->setBrush(m_brush);
painter->drawEllipse(m_boundingRect);
}
2025-11-14 19:31:09 +08:00
void ElectricPortItem::initial()
{
m_boundingRect = QRectF(-1,-1,2,2);
m_pen = QPen(Qt::black);
m_brush = QBrush(Qt::black);
setHandleVisible(false);
setFunctionHandleIfShow(false);
setFunctionHandleEnaable(false);
}