insilmaril@760: #ifndef MAPITEM_H insilmaril@760: #define MAPITEM_H insilmaril@760: insilmaril@760: #include insilmaril@760: insilmaril@779: #include "treeitem.h" insilmaril@762: insilmaril@760: class LinkableMapObj; insilmaril@760: insilmaril@760: /*! /brief MapItem is used to store information of MapObj and inherited insilmaril@760: classes. insilmaril@760: insilmaril@762: This is done even while no QGraphicsView is availabe. This is useful insilmaril@791: if e.g. on a small device like a cellphone the full map is not used, insilmaril@762: but just a treeview instead. insilmaril@760: */ insilmaril@760: insilmaril@779: class MapItem:public TreeItem insilmaril@760: { insilmaril@775: public: insilmaril@775: enum PositionMode {Unused,Absolute,Relative}; insilmaril@760: protected: insilmaril@760: QPointF pos; insilmaril@760: PositionMode posMode; insilmaril@760: insilmaril@760: public: insilmaril@760: MapItem(); insilmaril@779: MapItem(const QList &data, TreeItem *parent = 0); insilmaril@779: insilmaril@776: void init(); insilmaril@760: insilmaril@779: /*! Overloaded from TreeItem. Used to set parObj in LinkableMapObj */ insilmaril@779: virtual void appendChild (TreeItem *item); insilmaril@779: insilmaril@760: /*! Used to save relative position while map is not in QGraphicsView */ insilmaril@760: virtual void setRelPos(const QPointF&); insilmaril@760: insilmaril@760: /*! Used to save absolute position while map is not in QGraphicsView */ insilmaril@760: virtual void setAbsPos(const QPointF&); insilmaril@760: insilmaril@775: /*! Tell object to use e.g. absolute positioning for mapcenter. insilmaril@775: Defaulst is MapItem::Unused */ insilmaril@775: void setPositionMode (PositionMode mode); insilmaril@835: PositionMode getPositionMode (); insilmaril@775: insilmaril@779: insilmaril@779: protected: insilmaril@779: bool hideLinkUnselected; insilmaril@779: public: insilmaril@779: /*! Hide link if item is not selected */ insilmaril@779: virtual void setHideLinkUnselected(bool); insilmaril@779: insilmaril@779: /*! Check if link is hidden for unselected items */ insilmaril@779: virtual bool getHideLinkUnselected(); insilmaril@779: insilmaril@779: virtual QString getMapAttr(); //! Get attributes for saving as XML insilmaril@779: insilmaril@823: virtual QRectF getBBoxURLFlag();//! get bbox of url flag insilmaril@819: virtual QRectF getBBoxFlag (const QString &fname); //! get bbox of flag insilmaril@779: insilmaril@779: insilmaril@760: protected: insilmaril@760: LinkableMapObj *lmo; insilmaril@760: public: insilmaril@760: /*! Returns pointer to related LinkableMapObj in QGraphicsView */ insilmaril@760: virtual LinkableMapObj* getLMO(); insilmaril@760: insilmaril@760: /*! Set pointer to related LinkableMapObj in QGraphicsView */ insilmaril@760: virtual void setLMO (LinkableMapObj*); insilmaril@760: insilmaril@760: /*! Initialize LinkableMapObj with data in MapItem */ insilmaril@760: virtual void initLMO(); insilmaril@762: insilmaril@760: }; insilmaril@760: insilmaril@760: insilmaril@760: #endif