mapitem.h
author insilmaril
Wed, 09 Jun 2010 13:14:08 +0000
changeset 847 43268373032d
parent 835 31841b366d5e
permissions -rw-r--r--
1.13.4 Various fixes
insilmaril@760
     1
#ifndef MAPITEM_H
insilmaril@760
     2
#define MAPITEM_H
insilmaril@760
     3
insilmaril@760
     4
#include <QPointF>
insilmaril@760
     5
insilmaril@779
     6
#include "treeitem.h"
insilmaril@762
     7
insilmaril@760
     8
class LinkableMapObj;
insilmaril@760
     9
insilmaril@760
    10
/*! /brief MapItem is used to store information of MapObj and inherited
insilmaril@760
    11
   classes.
insilmaril@760
    12
 
insilmaril@762
    13
	This is done even while no QGraphicsView is availabe. This is useful
insilmaril@791
    14
	if e.g. on a small device like a cellphone the full map is not used,
insilmaril@762
    15
	but just a treeview instead.
insilmaril@760
    16
*/
insilmaril@760
    17
insilmaril@779
    18
class MapItem:public TreeItem
insilmaril@760
    19
{
insilmaril@775
    20
public:
insilmaril@775
    21
	enum PositionMode {Unused,Absolute,Relative};
insilmaril@760
    22
protected:
insilmaril@760
    23
	QPointF pos;
insilmaril@760
    24
	PositionMode posMode;
insilmaril@760
    25
insilmaril@760
    26
public:
insilmaril@760
    27
	MapItem();
insilmaril@779
    28
	MapItem(const QList<QVariant> &data, TreeItem *parent = 0);
insilmaril@779
    29
insilmaril@776
    30
	void init();
insilmaril@760
    31
insilmaril@779
    32
	/*! Overloaded from TreeItem. Used to set parObj in LinkableMapObj */
insilmaril@779
    33
	virtual void appendChild (TreeItem *item);
insilmaril@779
    34
insilmaril@760
    35
	/*! Used to save relative position while map is not in QGraphicsView */
insilmaril@760
    36
	virtual void setRelPos(const QPointF&);	
insilmaril@760
    37
insilmaril@760
    38
	/*! Used to save absolute position while map is not in QGraphicsView */
insilmaril@760
    39
	virtual void setAbsPos(const QPointF&);	
insilmaril@760
    40
insilmaril@775
    41
	/*! Tell object to use e.g. absolute positioning for mapcenter. 
insilmaril@775
    42
	    Defaulst is MapItem::Unused */
insilmaril@775
    43
	void setPositionMode (PositionMode mode);
insilmaril@835
    44
	PositionMode getPositionMode ();
insilmaril@775
    45
insilmaril@779
    46
insilmaril@779
    47
protected:
insilmaril@779
    48
	bool hideLinkUnselected;
insilmaril@779
    49
public:
insilmaril@779
    50
	/*! Hide link if item is not selected */
insilmaril@779
    51
	virtual void setHideLinkUnselected(bool);
insilmaril@779
    52
insilmaril@779
    53
	/*! Check if link is hidden for unselected items */
insilmaril@779
    54
	virtual bool getHideLinkUnselected();
insilmaril@779
    55
insilmaril@779
    56
	virtual QString getMapAttr();	//! Get attributes for saving as XML
insilmaril@779
    57
insilmaril@823
    58
	virtual QRectF getBBoxURLFlag();//! get bbox of url flag
insilmaril@819
    59
	virtual QRectF getBBoxFlag   (const QString &fname);	//! get bbox of flag
insilmaril@779
    60
insilmaril@779
    61
insilmaril@760
    62
protected:
insilmaril@760
    63
	LinkableMapObj *lmo;
insilmaril@760
    64
public:
insilmaril@760
    65
	/*! Returns pointer to related LinkableMapObj in QGraphicsView */
insilmaril@760
    66
	virtual LinkableMapObj* getLMO();
insilmaril@760
    67
insilmaril@760
    68
	/*! Set pointer to related LinkableMapObj in QGraphicsView */
insilmaril@760
    69
	virtual void setLMO (LinkableMapObj*);
insilmaril@760
    70
insilmaril@760
    71
	/*! Initialize LinkableMapObj with data in MapItem */
insilmaril@760
    72
	virtual void initLMO();
insilmaril@762
    73
insilmaril@760
    74
};
insilmaril@760
    75
insilmaril@760
    76
insilmaril@760
    77
#endif