91 lines
2.6 KiB
C++
91 lines
2.6 KiB
C++
#include "graphicsItem/electricSvgItemTriangle.h"
|
|
#include "graphicsItem/itemPort.h"
|
|
|
|
#include <QPainter>
|
|
#include <QStyleOption>
|
|
|
|
ElectricSvgItemTriangle::ElectricSvgItemTriangle(const QRect &rect, QGraphicsItem *parent)
|
|
: ElectricSvgItem(rect,parent)
|
|
{
|
|
loadSvg(":/images/element/svg_triangle.svg");
|
|
setHandleIfShow(H_textCaption,false);
|
|
setHandleVisible(false);
|
|
setFunctionHandleIfShow(false);
|
|
setFunctionHandleEnaable(false);
|
|
|
|
//入线口
|
|
ItemPort* pHandle1 = new ItemPort(this);
|
|
pHandle1->setType(T_lineOut);
|
|
pHandle1->setTag(H_connect);
|
|
pHandle1->setPortPos(P_top);
|
|
pHandle1->setParent(this);
|
|
m_vecHanle.insert(H_connect,pHandle1);
|
|
//出线口
|
|
ItemPort* pHandle2 = new ItemPort(this);
|
|
pHandle2->setType(T_lineIn);
|
|
pHandle2->setTag(H_connect+1);
|
|
pHandle2->setPortPos(P_down);
|
|
pHandle2->setParent(this);
|
|
m_vecHanle.insert(H_connect+1,pHandle2);
|
|
|
|
ItemPort* pHandle3 = new ItemPort(this);
|
|
pHandle3->setType(T_lineIn);
|
|
pHandle3->setTag(H_connect+2);
|
|
pHandle3->setPortPos(P_down);
|
|
pHandle3->setParent(this);
|
|
m_vecHanle.insert(H_connect+2,pHandle3);
|
|
|
|
m_dTopRatioX = 0.5;
|
|
m_dBottomRatioX = 0.333;
|
|
|
|
m_mapPort.insert(QString::number(_portId++),pHandle1);
|
|
m_mapPort.insert(QString::number(_portId++),pHandle2);
|
|
m_mapPort.insert(QString::number(_portId++),pHandle3);
|
|
}
|
|
|
|
ElectricSvgItemTriangle::~ElectricSvgItemTriangle()
|
|
{
|
|
|
|
}
|
|
|
|
void ElectricSvgItemTriangle::updateHandles()
|
|
{
|
|
ElectricSvgItem::updateHandles();
|
|
if( m_vecHanle.contains(H_connect))
|
|
{
|
|
const QRectF& boundingRect = this->boundingRect();
|
|
|
|
if(m_vecHanle.contains(H_connect))
|
|
{
|
|
m_vecHanle[H_connect]->move(boundingRect.right() - boundingRect.width() * m_dTopRatioX, boundingRect.top());
|
|
}
|
|
if(m_vecHanle.contains(H_connect + 1))
|
|
{
|
|
m_vecHanle[H_connect + 1]->move(boundingRect.left() + boundingRect.width() * m_dBottomRatioX, boundingRect.bottom());
|
|
}
|
|
if(m_vecHanle.contains(H_connect + 2))
|
|
{
|
|
m_vecHanle[H_connect + 2]->move(boundingRect.right() - boundingRect.width() * m_dBottomRatioX, boundingRect.bottom());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void ElectricSvgItemTriangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
|
{
|
|
ElectricSvgItem::paint(painter,option,widget);
|
|
}
|
|
|
|
/***********************************************************/
|
|
ElectricSvgItemTriangle_Property::ElectricSvgItemTriangle_Property(QObject* parent)
|
|
:BaseProperty(parent)
|
|
{
|
|
|
|
}
|
|
|
|
ElectricSvgItemTriangle_Property::~ElectricSvgItemTriangle_Property()
|
|
{
|
|
|
|
}
|
|
|