+++ /dev/null
-#include "mapitem.h"
-
-#include "linkablemapobj.h"
-#include "ornamentedobj.h"
-
-#include <QDebug>
-
-MapItem::MapItem()
-{
- init();
-}
-
-MapItem::MapItem(const QList<QVariant> &data, TreeItem *parent):TreeItem (data,parent)
-{
- init();
-}
-
-void MapItem::init()
-{
- mo=NULL;
- posMode=Unused;
- hideLinkUnselected=false;
-}
-
-void MapItem::appendChild (TreeItem *item)
-{
- TreeItem::appendChild (item);
-
- // FIXME-4 maybe access parent in MapObjs directly via treeItem
- // and remove this here...
-
- // If lmo exists, also set parObj there
- LinkableMapObj *lmo=getLMO();
- if (lmo)
- {
- LinkableMapObj *itemLMO=((MapItem*)item)->getLMO();
- if (itemLMO)
- itemLMO->setParObj (lmo);
- }
-}
-
-void MapItem::setRelPos (const QPointF &p)
-{
- posMode=Relative;
- pos=p;
- LinkableMapObj *lmo=getLMO();
- if (lmo)
- {
- ((OrnamentedObj*)lmo)->setUseRelPos (true);
- ((OrnamentedObj*)lmo)->move2RelPos(p);
- }
-}
-
-void MapItem::setAbsPos (const QPointF &p)
-{
- posMode=Absolute;
- pos=p;
- if (mo) mo->move (p);
-}
-
-void MapItem::setPositionMode (PositionMode mode)
-{
- posMode=mode;
-}
-
-MapItem::PositionMode MapItem::getPositionMode ()
-{
- return posMode;
-}
-
-void MapItem::setHideLinkUnselected (bool b)
-{
- hideLinkUnselected=b;
- LinkableMapObj *lmo=getLMO();
- if (lmo)
- {
- //lmo->setHideLinkUnselected();
- lmo->setVisibility (lmo->isVisibleObj());
- lmo->updateLinkGeometry();
- }
-}
-
-bool MapItem::getHideLinkUnselected()
-{
- return hideLinkUnselected;
-}
-
-QString MapItem::getMapAttr ()
-{
- QString s;
- LinkableMapObj *lmo=getLMO();
-
- if (parentItem==rootItem)
- posMode=Absolute;
- else
- {
- if (type==TreeItem::Image ||depth()==1 || lmo->getUseRelPos() )
- posMode=Relative; //FiXME-2 shouldn't this be replaced by relPos?
- else
- posMode=Unused;
- }
- switch (posMode)
- {
- case Relative:
- if (lmo) pos=lmo->getRelPos();
- s= attribut("relPosX",QString().setNum(pos.x())) +
- attribut("relPosY",QString().setNum(pos.y()));
- break;
- case Absolute:
- if (mo) pos=mo->getAbsPos();
- s=attribut("absPosX",QString().setNum(pos.x())) +
- attribut("absPosY",QString().setNum(pos.y()));
- break;
- default: break;
- }
- if (hideLinkUnselected)
- s+=attribut ("hideLink","true");
- else
- s+=attribut ("hideLink","false");
-
- // Rotation angle
- MapObj *mo=getMO();
- if (mo)
- angle=mo->getRotation();
- if (angle!=0)
- s+=attribut("rotation",QString().setNum(angle) );
-
- return s;
-}
-
-QRectF MapItem::getBBoxURLFlag ()
-{
- QStringList list=systemFlags.activeFlagNames().filter ("system-url");
- if (list.count()>1)
- {
- qWarning()<<"MapItem::getBBoxURLFlag found more than one system-url*";
- return QRectF ();
- }
- return getBBoxFlag (list.first());
-}
-
-QRectF MapItem::getBBoxFlag (const QString &fname)
-{
- LinkableMapObj *lmo=getLMO();
- if (lmo)
- return ((OrnamentedObj*)lmo)->getBBoxFlag (fname);
- else
- return QRectF ();
-}
-
-void MapItem::setRotation(const qreal &a)
-{
- angle=a;
- MapObj *mo=getMO();
- if (mo) mo->setRotation (a);
-}
-
-MapObj* MapItem::getMO()
-{
- return mo;
-}
-
-LinkableMapObj* MapItem::getLMO()
-{
- if (isBranchLikeType() || type==Image)
- return (LinkableMapObj*)mo;
- else
- return NULL;
-}
-
-void MapItem::initLMO()
-{
- LinkableMapObj *lmo=getLMO();
- if (!lmo) return;
- switch (posMode)
- {
- case Relative:
- lmo->setRelPos (pos);
- break;
- case Absolute:
- lmo->move (pos);
- break;
- default:
- break;
- }
-}
-