insilmaril@760: #include "mapitem.h" insilmaril@760: insilmaril@760: #include "linkablemapobj.h" insilmaril@760: #include "ornamentedobj.h" insilmaril@760: insilmaril@760: #include insilmaril@760: using namespace std; insilmaril@760: insilmaril@760: MapItem::MapItem() insilmaril@760: { insilmaril@760: lmo=NULL; insilmaril@760: posMode=Unused; insilmaril@760: } insilmaril@760: insilmaril@760: void MapItem::setRelPos (const QPointF &p) insilmaril@760: { insilmaril@760: posMode=Relative; insilmaril@760: pos=p; insilmaril@760: if (lmo) insilmaril@760: { insilmaril@760: ((OrnamentedObj*)lmo)->setUseRelPos (true); insilmaril@760: ((OrnamentedObj*)lmo)->move2RelPos(p); insilmaril@760: } insilmaril@760: } insilmaril@760: insilmaril@760: void MapItem::setAbsPos (const QPointF &p) insilmaril@760: { insilmaril@760: posMode=Absolute; insilmaril@760: pos=p; insilmaril@760: if (lmo) lmo->move (p); insilmaril@760: } insilmaril@760: insilmaril@760: LinkableMapObj* MapItem::getLMO() insilmaril@760: { insilmaril@760: return lmo; insilmaril@760: } insilmaril@760: insilmaril@760: void MapItem::setLMO(LinkableMapObj *l) insilmaril@760: { insilmaril@760: lmo=l; insilmaril@760: } insilmaril@760: insilmaril@760: void MapItem::initLMO() insilmaril@760: { insilmaril@760: if (!lmo) return; insilmaril@760: switch (posMode) insilmaril@760: { insilmaril@760: case Relative: insilmaril@760: lmo->setRelPos (pos); insilmaril@760: break; insilmaril@760: case Absolute: insilmaril@760: lmo->move (pos); insilmaril@760: break; insilmaril@760: default: insilmaril@760: break; insilmaril@760: } insilmaril@760: } insilmaril@760: insilmaril@762: QString MapItem::getAttr() insilmaril@762: { insilmaril@762: switch (posMode) insilmaril@762: { insilmaril@762: case Relative: insilmaril@762: if (lmo) pos=lmo->getRelPos(); insilmaril@762: return insilmaril@762: attribut("relPosX",QString().setNum(pos.x())) + insilmaril@762: attribut("relPosY",QString().setNum(pos.y())); insilmaril@762: break; insilmaril@762: case Absolute: insilmaril@762: if (lmo) pos=lmo->getAbsPos(); insilmaril@762: return insilmaril@762: attribut("absPosX",QString().setNum(pos.x())) + insilmaril@762: attribut("absPosY",QString().setNum(pos.y())); insilmaril@762: break; insilmaril@762: default: insilmaril@762: return QString(); insilmaril@762: break; insilmaril@762: } insilmaril@762: } insilmaril@762: