mapitem.cpp
author insilmaril
Mon, 08 Jun 2009 11:36:56 +0000
changeset 776 25e634a7e1dc
parent 775 6e4b586aa88a
child 777 8acac4fade1b
permissions -rw-r--r--
Images basically work (again)
insilmaril@760
     1
#include "mapitem.h"
insilmaril@760
     2
insilmaril@760
     3
#include "linkablemapobj.h"
insilmaril@760
     4
#include "ornamentedobj.h"
insilmaril@760
     5
insilmaril@760
     6
#include <iostream>
insilmaril@760
     7
using namespace std;
insilmaril@776
     8
#include "misc.h"	//cout << QPointF
insilmaril@760
     9
insilmaril@760
    10
MapItem::MapItem()
insilmaril@760
    11
{
insilmaril@776
    12
	init();
insilmaril@776
    13
}
insilmaril@776
    14
insilmaril@776
    15
MapItem::MapItem(const QList<QVariant> &data, TreeItem *parent):TreeItem (data,parent)
insilmaril@776
    16
{
insilmaril@776
    17
	init();
insilmaril@776
    18
}
insilmaril@776
    19
insilmaril@776
    20
void MapItem::init()
insilmaril@776
    21
{
insilmaril@760
    22
	lmo=NULL;
insilmaril@760
    23
	posMode=Unused;
insilmaril@760
    24
}
insilmaril@760
    25
insilmaril@760
    26
void MapItem::setRelPos (const QPointF &p)
insilmaril@760
    27
{
insilmaril@760
    28
	posMode=Relative;
insilmaril@760
    29
	pos=p;
insilmaril@760
    30
	if (lmo)
insilmaril@760
    31
	{
insilmaril@760
    32
		((OrnamentedObj*)lmo)->setUseRelPos (true);
insilmaril@760
    33
		((OrnamentedObj*)lmo)->move2RelPos(p);
insilmaril@760
    34
	}
insilmaril@760
    35
}
insilmaril@760
    36
insilmaril@760
    37
void MapItem::setAbsPos (const QPointF &p)
insilmaril@760
    38
{
insilmaril@760
    39
	posMode=Absolute;
insilmaril@760
    40
	pos=p;
insilmaril@760
    41
	if (lmo) lmo->move (p);
insilmaril@760
    42
}
insilmaril@760
    43
insilmaril@775
    44
void MapItem::setPositionMode (PositionMode mode)
insilmaril@775
    45
{
insilmaril@775
    46
	posMode=mode;
insilmaril@775
    47
}
insilmaril@775
    48
insilmaril@760
    49
LinkableMapObj* MapItem::getLMO()
insilmaril@760
    50
{
insilmaril@760
    51
	return lmo;
insilmaril@760
    52
}
insilmaril@760
    53
insilmaril@760
    54
void MapItem::setLMO(LinkableMapObj *l)
insilmaril@760
    55
{
insilmaril@760
    56
	lmo=l;
insilmaril@760
    57
}
insilmaril@760
    58
insilmaril@760
    59
void MapItem::initLMO()
insilmaril@760
    60
{
insilmaril@760
    61
	if (!lmo) return;
insilmaril@760
    62
	switch (posMode)
insilmaril@760
    63
	{
insilmaril@760
    64
		case Relative:	
insilmaril@760
    65
			lmo->setRelPos (pos);
insilmaril@760
    66
			break;
insilmaril@760
    67
		case Absolute:	
insilmaril@760
    68
			lmo->move (pos);
insilmaril@760
    69
			break;
insilmaril@760
    70
		default:
insilmaril@760
    71
			break;
insilmaril@760
    72
	}
insilmaril@760
    73
}
insilmaril@760
    74
insilmaril@762
    75
QString MapItem::getAttr()
insilmaril@762
    76
{
insilmaril@776
    77
	QString s;
insilmaril@776
    78
	if (parentItem==rootItem)
insilmaril@776
    79
		posMode=Absolute;
insilmaril@776
    80
	else
insilmaril@776
    81
	{
insilmaril@776
    82
		if (type==TreeItem::Image ||depth()==1)
insilmaril@776
    83
			posMode=Relative;
insilmaril@776
    84
		else
insilmaril@776
    85
			posMode=Unused;
insilmaril@776
    86
	}
insilmaril@762
    87
	switch (posMode)
insilmaril@762
    88
	{
insilmaril@762
    89
		case Relative:	
insilmaril@762
    90
			if (lmo) pos=lmo->getRelPos();
insilmaril@776
    91
			s= attribut("relPosX",QString().setNum(pos.x())) +
insilmaril@776
    92
			   attribut("relPosY",QString().setNum(pos.y())); 
insilmaril@762
    93
			break;
insilmaril@762
    94
		case Absolute:	
insilmaril@762
    95
			if (lmo) pos=lmo->getAbsPos();
insilmaril@776
    96
			s=attribut("absPosX",QString().setNum(pos.x())) +
insilmaril@776
    97
			  attribut("absPosY",QString().setNum(pos.y())); 
insilmaril@762
    98
			break;
insilmaril@776
    99
		default: break;
insilmaril@762
   100
	}
insilmaril@776
   101
	if (hideExport)
insilmaril@776
   102
		return s+attribut("hideInExport","true");
insilmaril@776
   103
	else	
insilmaril@776
   104
		return s;
insilmaril@762
   105
}
insilmaril@762
   106