1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#include "elementitem.h"
ElementItem::ElementItem(Element *p_model) : QGraphicsSvgItem()
{
m_model = p_model;
setPos(p_model->getX() - boundingRect().width() / 2, p_model->getY() - boundingRect().height() / 2);
connect(p_model, SIGNAL(moved(qreal,qreal)), this, SLOT(update(qreal,qreal)));
setCacheMode(DeviceCoordinateCache);
setMaximumCacheSize(QSize(500, 500));
}
ElementItem::~ElementItem()
{
delete m_model;
}
Element *ElementItem::getModel() const
{
return m_model;
}
QPainterPath ElementItem::shape() const
{
QPainterPath path;
path.addEllipse(boundingRect());
return path;
}
void ElementItem::update(qreal p_x, qreal p_y)
{
qreal x = p_x - boundingRect().width() / 2;
qreal y = p_y - boundingRect().height() / 2;
setPos(x, y);
}
|