#include <QDebug>
#include "floatobj.h"
#include "mapitem.h"
extern bool debug;
/////////////////////////////////////////////////////////////////
// FloatObj
/////////////////////////////////////////////////////////////////
FloatObj::FloatObj (QGraphicsItem *parent, TreeItem *ti):OrnamentedObj(parent,ti)
{
//qDebug() << "Const FloatObj s="<<s<<" ti="<<ti<<" treeItem="<<treeItem;
init();
}
FloatObj::~FloatObj ()
{
// qDebug() << "Destr FloatObj";
}
void FloatObj::init ()
{
setLinkStyle (LinkableMapObj::Parabel);
((MapItem*)treeItem)->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;
}