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