author | insilmaril |
Mon Jun 08 11:36:56 2009 +0000 (2009-06-08) | |
changeset 776 | 25e634a7e1dc |
parent 775 | 6e4b586aa88a |
child 777 | 8acac4fade1b |
permissions | -rw-r--r-- |
1 #include "mapitem.h"
3 #include "linkablemapobj.h"
4 #include "ornamentedobj.h"
6 #include <iostream>
7 using namespace std;
8 #include "misc.h" //cout << QPointF
10 MapItem::MapItem()
11 {
12 init();
13 }
15 MapItem::MapItem(const QList<QVariant> &data, TreeItem *parent):TreeItem (data,parent)
16 {
17 init();
18 }
20 void MapItem::init()
21 {
22 lmo=NULL;
23 posMode=Unused;
24 }
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 }
37 void MapItem::setAbsPos (const QPointF &p)
38 {
39 posMode=Absolute;
40 pos=p;
41 if (lmo) lmo->move (p);
42 }
44 void MapItem::setPositionMode (PositionMode mode)
45 {
46 posMode=mode;
47 }
49 LinkableMapObj* MapItem::getLMO()
50 {
51 return lmo;
52 }
54 void MapItem::setLMO(LinkableMapObj *l)
55 {
56 lmo=l;
57 }
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 }
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 }