X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Ffloatobj.cpp;fp=src%2Ffloatobj.cpp;h=650b6a5700ece6955c29cd4586d3d1424f077db8;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/floatobj.cpp b/src/floatobj.cpp new file mode 100644 index 0000000..650b6a5 --- /dev/null +++ b/src/floatobj.cpp @@ -0,0 +1,98 @@ +#include + +#include "floatobj.h" +#include "mapitem.h" + +extern bool debug; + +///////////////////////////////////////////////////////////////// +// FloatObj +///////////////////////////////////////////////////////////////// + +FloatObj::FloatObj(QGraphicsItem *parent, TreeItem *ti) + : OrnamentedObj(parent, ti) +{ + // qDebug() << "Const FloatObj s="<setHideLinkUnselected(true); +} + +void FloatObj::copy(FloatObj *other) +{ + LinkableMapObj::copy(other); + setVisibility(other->visible); +} + +void FloatObj::move(double x, double y) { MapObj::move(x, y); } + +void FloatObj::move(QPointF p) { FloatObj::move(p.x(), p.y()); } + +void FloatObj::moveCenter(double x, double y) +{ + absPos = QPointF(x, y); + bbox.moveTo(x - bbox.width() / 2, y - bbox.height() / 2); + clickPoly = QPolygonF(bbox); +} + +void FloatObj::moveCenter2RelPos(double x, double y) +{ + setRelPos(QPointF(x, y)); + if (parObj) { + QPointF p = parObj->getFloatRefPos(); + moveCenter(p.x() + x, p.y() + y); + } +} + +void FloatObj::move2RelPos( + double x, double y) // overloaded to use floatRefPos instead of childRefPos +{ + setRelPos(QPointF(x, y)); + if (parObj) { + QPointF p = parObj->getFloatRefPos(); + move(p.x() + x, p.y() + y); + } +} + +void FloatObj::move2RelPos( + QPointF p) // overloaded to use floatRefPos instead of childRefPos +{ + move2RelPos(p.x(), p.y()); +} + +void FloatObj::setRelPos() +{ + if (parObj) + setRelPos(absPos - parObj->getFloatRefPos()); + else + qWarning() << "FO::setRelPos parObj==0 this=" << this; +} + +void FloatObj::setRelPos(const QPointF &p) +{ + if (parObj) { + relPos = p; + useRelPos = true; + } + else + qWarning() << "LMO::setRelPos (p) parObj==0 this=" << this; +} + +void FloatObj::setDockPos() { parPos = absPos; } + +void FloatObj::reposition() +{ + moveCenter2RelPos(relPos.x(), relPos.y()); + updateLinkGeometry(); +} + +QRectF FloatObj::getBBoxSizeWithChildren() { return bboxTotal; }