valentina/widgets/vgraphicssimpletextitem.cpp

46 lines
1.9 KiB
C++
Raw Normal View History

2013-08-20 12:26:02 +02:00
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wconversion"
#pragma GCC diagnostic ignored "-Wsign-conversion"
#pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
2013-07-13 12:51:31 +02:00
#include "vgraphicssimpletextitem.h"
#include <QGraphicsScene>
2013-08-20 12:26:02 +02:00
#pragma GCC diagnostic pop
2013-07-13 12:51:31 +02:00
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent):QGraphicsSimpleTextItem(parent){
}
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem( const QString & text, QGraphicsItem * parent ):QGraphicsSimpleTextItem(text, parent){
this->setFlag(QGraphicsItem::ItemIsMovable, true);
this->setFlag(QGraphicsItem::ItemIsSelectable, true);
this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
2013-07-28 00:18:06 +02:00
this->setAcceptHoverEvents(true);
2013-07-13 12:51:31 +02:00
}
QVariant VGraphicsSimpleTextItem::itemChange(GraphicsItemChange change, const QVariant &value){
if (change == ItemPositionChange && scene()) {
// value - это новое положение.
QPointF newPos = value.toPointF() + this->parentItem()->pos();
// QRectF rect = scene()->sceneRect();
// if (!rect.contains(newPos)) {
// // Сохраняем элемент внутри прямоугольника сцены.
// newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left())));
// newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top())));
// emit NameChangePosition(newPos - this->parentItem()->pos());
// return newPos - this->parentItem()->pos();
// }
2013-07-13 12:51:31 +02:00
emit NameChangePosition(newPos);
}
return QGraphicsItem::itemChange(change, value);
2013-07-28 00:18:06 +02:00
}
void VGraphicsSimpleTextItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event){
Q_UNUSED(event);
this->setBrush(Qt::green);
}
void VGraphicsSimpleTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event){
Q_UNUSED(event);
this->setBrush(Qt::black);
}