Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
GraphicsPointEllipse.cpp
1 #include "DataKey.h"
2 #include "GraphicsPoint.h"
3 #include "GraphicsPointEllipse.h"
4 #include "Logger.h"
5 #include <QGraphicsScene>
6 #include "QtToString.h"
7 
9  const QRect &rect) :
10  QGraphicsEllipseItem (rect),
11  m_graphicsPoint (graphicsPoint)
12 {
13  LOG4CPP_INFO_S ((*mainCat)) << "GraphicsPointEllipse::GraphicsPointEllipse";
14 }
15 
16 QVariant GraphicsPointEllipse::itemChange(GraphicsItemChange change,
17  const QVariant &value)
18 {
19  if (change == QGraphicsItem::ItemPositionHasChanged) {
20 
21  LOG4CPP_DEBUG_S ((*mainCat)) << "GraphicsPointEllipse::itemChange"
22  << " identifier=" << data (DATA_KEY_IDENTIFIER).toString().toLatin1().data()
23  << " positionHasChanged";
24 
25  setData (DATA_KEY_POSITION_HAS_CHANGED, QVariant (true));
26  }
27 
28  return QGraphicsEllipseItem::itemChange(change,
29  value);
30 }
31 
33 {
34  // Resize assuming symmetry about the origin, and an aspect ratio of 1:1 (so x and y scales are the same)
35  double scale = (2 * radius) / boundingRect().width();
36  setScale (scale);
37 }
Graphics item for drawing a circular or polygonal Point.
Definition: GraphicsPoint.h:33
QVariant itemChange(GraphicsItemChange change, const QVariant &value)
Intercept moves by dragging so moved items can be identified. This replaces unreliable hit tests...
GraphicsPointEllipse(GraphicsPoint &graphicsPoint, const QRect &rect)
Single constructor.
void setRadius(int radius)
Update the radius.