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@776: #include "misc.h" //cout << QPointF insilmaril@760: insilmaril@760: MapItem::MapItem() insilmaril@760: { insilmaril@776: init(); insilmaril@776: } insilmaril@776: insilmaril@776: MapItem::MapItem(const QList &data, TreeItem *parent):TreeItem (data,parent) insilmaril@776: { insilmaril@776: init(); insilmaril@776: } insilmaril@776: insilmaril@776: void MapItem::init() insilmaril@776: { 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@775: void MapItem::setPositionMode (PositionMode mode) insilmaril@775: { insilmaril@775: posMode=mode; insilmaril@775: } insilmaril@775: 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@776: QString s; insilmaril@776: if (parentItem==rootItem) insilmaril@776: posMode=Absolute; insilmaril@776: else insilmaril@776: { insilmaril@776: if (type==TreeItem::Image ||depth()==1) insilmaril@776: posMode=Relative; insilmaril@776: else insilmaril@776: posMode=Unused; insilmaril@776: } insilmaril@762: switch (posMode) insilmaril@762: { insilmaril@762: case Relative: insilmaril@762: if (lmo) pos=lmo->getRelPos(); insilmaril@776: s= attribut("relPosX",QString().setNum(pos.x())) + insilmaril@776: attribut("relPosY",QString().setNum(pos.y())); insilmaril@762: break; insilmaril@762: case Absolute: insilmaril@762: if (lmo) pos=lmo->getAbsPos(); insilmaril@776: s=attribut("absPosX",QString().setNum(pos.x())) + insilmaril@776: attribut("absPosY",QString().setNum(pos.y())); insilmaril@762: break; insilmaril@776: default: break; insilmaril@762: } insilmaril@776: if (hideExport) insilmaril@776: return s+attribut("hideInExport","true"); insilmaril@776: else insilmaril@776: return s; insilmaril@762: } insilmaril@762: