1 #include "qncggraphicsinterface.h"
6 setncgType(Qncg::Interface);
9 QncgGraphicsInterface::~QncgGraphicsInterface()
14 void QncgGraphicsInterface::adjust(
bool avoidCollision)
20 QPointF pointa(parent->getWidth()/2, parent->getHeight()/2);
21 QPointF pointb(getLeft() + getWidth()/2, getTop() + getHeight()/2);
23 if (pointa == pointb){
24 pointb.setX(pointa.x());
25 pointb.setY(pointa.y() - 10);
28 QLineF line(pointa,pointb);
31 if (parent->contains(pointb)){
32 QPointF pointn = pointb;
36 if (parent->contains(line.pointAt(index+0.01))){
37 while(parent->contains(pointn)){
40 pointn = line.pointAt(index);
44 setTop(pointn.y() - getHeight()/2);
45 setLeft(pointn.x() - getWidth()/2);
48 QPointF pointn = pointb;
52 if (!parent->contains(line.pointAt(index-0.01))){
53 while(!parent->contains(pointn)){
56 pointn = line.pointAt(index);
60 setTop(pointn.y() - getHeight()/2);
61 setLeft(pointn.x() - getWidth()/2);
71 void QncgGraphicsInterface::move(QGraphicsSceneMouseEvent* event)
94 maxx = parent->getWidth() - getWidth() - 4;
95 maxy = parent->getHeight() - getHeight() - 4;
97 maxx = scene()->width() - getWidth();
98 maxy = scene()->height() - getHeight();
101 qreal dx =
event->pos().x() - getPressLeft();
102 qreal dy =
event->pos().y() - getPressTop();
104 qreal nextx = x + dx;
105 qreal nexty = y + dy;
112 if (scene() != NULL){
117 void QncgGraphicsInterface::resize(QGraphicsSceneMouseEvent* event)
122 qreal w = getWidth();
123 qreal h = getHeight();
132 if (parentItem() != NULL){
149 if (parentItem() != NULL){
150 maxx = parent->getWidth() - getWidth() - 4;
151 maxy = parent->getHeight() - getHeight() - 4;
152 maxw = parent->getWidth() - 4;
153 maxh = parent->getHeight() - 4;
155 maxx = scene()->width() - getWidth();
156 maxy = scene()->height() - getHeight();
157 maxw = scene()->width();
158 maxh = scene()->height();
161 qreal dx =
event->pos().x() - getPressLeft();
162 qreal dy =
event->pos().y() - getPressTop();
166 qreal nextx = x + dx;
167 qreal nexty = y + dy;
168 qreal nextw = w + dw;
169 qreal nexth = h + dh;
172 switch(getncgResize()){
185 case Qncg::TopRight:{
204 case Qncg::BottomRight:{
227 case Qncg::BottomLeft:{
247 setResizeLeft(nextx);
248 setResizeWidth(nextw);
249 setResizeHeight(nexth);
252 if (scene() != NULL){