]> git.sven.stormbind.net Git - sven/vym.git/blob - floatobj.cpp
Import Upstream version 2.6.11
[sven/vym.git] / floatobj.cpp
1 #include <QDebug>
2
3 #include "floatobj.h"
4 #include "mapitem.h"
5
6 extern bool debug;
7
8 /////////////////////////////////////////////////////////////////
9 // FloatObj
10 /////////////////////////////////////////////////////////////////
11
12 FloatObj::FloatObj (QGraphicsItem *parent, TreeItem *ti):OrnamentedObj(parent,ti)
13 {
14     //qDebug() << "Const FloatObj s="<<s<<"  ti="<<ti<<"  treeItem="<<treeItem;
15     init();
16 }
17
18 FloatObj::~FloatObj ()
19 {
20 //   qDebug() << "Destr FloatObj";
21 }
22
23 void FloatObj::init () 
24 {
25     setLinkStyle (LinkableMapObj::Parabel);
26     ((MapItem*)treeItem)->setHideLinkUnselected(true);
27 }
28
29 void FloatObj::copy (FloatObj* other)
30 {
31     LinkableMapObj::copy (other);
32     setVisibility (other->visible);
33 }
34
35 void FloatObj::move (double x, double y)   
36 {
37     MapObj::move(x,y);
38 }
39
40 void FloatObj::move (QPointF p)
41 {
42     FloatObj::move(p.x(), p.y());
43 }
44
45 void FloatObj::moveCenter (double x, double y)
46 {
47     absPos=QPointF(x,y);
48     bbox.moveTo(x - bbox.width()/2, y - bbox.height()/2 );
49     clickPoly=QPolygonF (bbox);
50 }
51
52 void FloatObj::moveCenter2RelPos(double x, double y)  
53 {
54     setRelPos (QPointF(x,y));
55     if (parObj)
56     {
57         QPointF p=parObj->getFloatRefPos();
58         moveCenter (p.x() + x, p.y() + y);
59     }
60 }
61
62 void FloatObj::move2RelPos(double x, double y)  // overloaded to use floatRefPos instead of childRefPos
63 {
64     setRelPos (QPointF(x,y));
65     if (parObj)
66     {
67         QPointF p=parObj->getFloatRefPos();
68         move (p.x() + x, p.y() + y);
69     }
70 }
71
72 void FloatObj::move2RelPos(QPointF p)           // overloaded to use floatRefPos instead of childRefPos
73 {
74     move2RelPos (p.x(), p.y());
75 }
76
77 void FloatObj::setRelPos()
78 {
79     if (parObj)
80         setRelPos (absPos - parObj->getFloatRefPos() );
81     else
82         qWarning()<<"FO::setRelPos parObj==0   this="<<this;
83 }
84
85 void FloatObj::setRelPos(const QPointF &p)
86 {
87     if (parObj)
88     {       
89         relPos=p;
90         useRelPos=true;
91     }   else
92         qWarning()<<"LMO::setRelPos (p)  parObj==0   this="<<this;
93 }
94
95 void FloatObj::setDockPos()
96 {
97     parPos=absPos;
98 }
99
100 void FloatObj::reposition()
101 {
102     moveCenter2RelPos (relPos.x(), relPos.y());
103     updateLinkGeometry();   
104 }
105
106 QRectF FloatObj::getBBoxSizeWithChildren()
107 {
108     return bboxTotal;
109 }
110