Changeset 13537 for branches/OMEdit/OMEditGUI/CornerItem.cpp
- Timestamp:
- 2012-10-20T20:27:24+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OMEdit/OMEditGUI/CornerItem.cpp
r13405 r13537 35 35 36 36 #include "CornerItem.h" 37 38 RectangleCornerItem::RectangleCornerItem(qreal x, qreal y, int connectedPointIndex, ShapeAnnotation *pParent)39 : QGraphicsItem(pParent), mItemClicked(false), mConnectedPointIndex(connectedPointIndex)40 {41 setFlags(QGraphicsItem::ItemIgnoresTransformations | QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable42 | QGraphicsItem::ItemSendsGeometryChanges);43 setAcceptHoverEvents(true);44 scale(1.0, -1.0);45 mActivePen = QPen(Qt::red);46 mHoverPen = QPen(Qt::darkRed);47 setPos(x, y);48 mRectangle = QRectF (-3, -3, 6, 6);49 setActive();50 51 mpShapeAnnotation = pParent;52 connect(this, SIGNAL(itemMoved(int,QPointF)), mpShapeAnnotation, SLOT(updatePoint(int,QPointF)));53 connect(this, SIGNAL(itemClicked()), mpShapeAnnotation, SLOT(doSelect()));54 connect(this, SIGNAL(itemUnClicked()), mpShapeAnnotation, SLOT(doUnSelect()));55 connect(this, SIGNAL(itemPositionUpdate()), mpShapeAnnotation->mpGraphicsView, SLOT(addClassAnnotation()));56 }57 58 //! Tells the box to become visible and use active style.59 //! @see setPassive();60 //! @see setHovered();61 void RectangleCornerItem::setActive()62 {63 setVisible(true);64 mPen = mActivePen;65 update();66 }67 68 //! Tells the box to become invisible.69 //! @see setActive();70 //! @see setHovered();71 void RectangleCornerItem::setPassive()72 {73 setVisible(false);74 }75 76 //! Tells the box to become visible and use hovered style.77 //! @see setActive();78 //! @see setPassive();79 void RectangleCornerItem::setHovered()80 {81 setVisible(true);82 mPen = mHoverPen;83 }84 85 QRectF RectangleCornerItem::boundingRect() const86 {87 return mRectangle;88 }89 90 void RectangleCornerItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)91 {92 Q_UNUSED(option);93 Q_UNUSED(widget);94 painter->setPen(mPen);95 painter->setBrush(mPen.color());96 painter->drawRect(mRectangle);97 }98 99 //! Event when mouse cursor enters component icon.100 void RectangleCornerItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)101 {102 Q_UNUSED(event);103 setCursor(Qt::ArrowCursor);104 }105 106 //! Event when mouse cursor leaves component icon.107 void RectangleCornerItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)108 {109 Q_UNUSED(event);110 unsetCursor();111 }112 113 void RectangleCornerItem::mousePressEvent(QGraphicsSceneMouseEvent *event)114 {115 emit itemClicked();116 mClickPos = mapToScene(event->pos());117 QGraphicsItem::mousePressEvent(event);118 }119 120 void RectangleCornerItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)121 {122 emit itemUnClicked();123 if (mClickPos != mapToScene(event->pos()))124 {125 emit itemPositionUpdate();126 }127 mpShapeAnnotation->setSelected(true);128 QGraphicsItem::mouseReleaseEvent(event);129 }130 131 QVariant RectangleCornerItem::itemChange(GraphicsItemChange change, const QVariant &value)132 {133 QGraphicsItem::itemChange(change, value);134 if (change == QGraphicsItem::ItemPositionHasChanged)135 {136 emit itemMoved(mConnectedPointIndex, value.toPointF());137 }138 return value;139 }140 37 141 38 ResizerItem::ResizerItem(int index, QGraphicsItem *pParent)
Note: See TracChangeset
for help on using the changeset viewer.