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