mapitem.cpp
changeset 779 1fb50e79661c
parent 777 8acac4fade1b
child 819 8f987e376035
     1.1 --- a/mapitem.cpp	Mon Jun 29 10:28:28 2009 +0000
     1.2 +++ b/mapitem.cpp	Tue Jul 07 09:34:24 2009 +0000
     1.3 @@ -8,10 +8,32 @@
     1.4  	init();
     1.5  }
     1.6  
     1.7 +MapItem::MapItem(const QList<QVariant> &data, TreeItem *parent):TreeItem (data,parent)
     1.8 +{
     1.9 +	init();
    1.10 +}
    1.11 +
    1.12  void MapItem::init()
    1.13  {
    1.14  	lmo=NULL;
    1.15  	posMode=Unused;
    1.16 +	hideLinkUnselected=false;
    1.17 +}
    1.18 +
    1.19 +void MapItem::appendChild (TreeItem *item)
    1.20 +{
    1.21 +	TreeItem::appendChild (item);
    1.22 +
    1.23 +	// FIXME-4 maybe access parent in MapObjs directly via treeItem
    1.24 +	// and remove this here...
    1.25 +
    1.26 +	// If lmo exists, also set parObj there
    1.27 +	if (lmo && (item->isBranchLikeType() || item->getType()==TreeItem::Image) )
    1.28 +	{
    1.29 +		LinkableMapObj *itemLMO=((MapItem*)item)->lmo;
    1.30 +		if (itemLMO)
    1.31 +			itemLMO->setParObj (lmo);
    1.32 +	}
    1.33  }
    1.34  
    1.35  void MapItem::setRelPos (const QPointF &p)
    1.36 @@ -37,6 +59,51 @@
    1.37  	posMode=mode;
    1.38  }
    1.39  
    1.40 +void MapItem::setHideLinkUnselected (bool b)
    1.41 +{
    1.42 +	hideLinkUnselected=b;
    1.43 +	if (lmo) lmo->setHideLinkUnselected();
    1.44 +}
    1.45 +
    1.46 +bool MapItem::getHideLinkUnselected()
    1.47 +{
    1.48 +	return hideLinkUnselected;
    1.49 +}	
    1.50 +
    1.51 +QString MapItem::getMapAttr ()	
    1.52 +{
    1.53 +	QString s;
    1.54 +
    1.55 +	if (parentItem==rootItem)
    1.56 +		posMode=Absolute;
    1.57 +	else
    1.58 +	{
    1.59 +		if (type==TreeItem::Image ||depth()==1)
    1.60 +			posMode=Relative;
    1.61 +		else
    1.62 +			posMode=Unused;
    1.63 +	}
    1.64 +	switch (posMode)
    1.65 +	{
    1.66 +		case Relative:	
    1.67 +			if (lmo) pos=lmo->getRelPos();
    1.68 +			s= attribut("relPosX",QString().setNum(pos.x())) +
    1.69 +			   attribut("relPosY",QString().setNum(pos.y())); 
    1.70 +			break;
    1.71 +		case Absolute:	
    1.72 +			if (lmo) pos=lmo->getAbsPos();
    1.73 +			s=attribut("absPosX",QString().setNum(pos.x())) +
    1.74 +			  attribut("absPosY",QString().setNum(pos.y())); 
    1.75 +			break;
    1.76 +		default: break;
    1.77 +	}
    1.78 +	if (hideLinkUnselected)
    1.79 +		s+=attribut ("hideLink","true");
    1.80 +	else
    1.81 +		s+=attribut ("hideLink","false");
    1.82 +	return s;
    1.83 +}
    1.84 +
    1.85  LinkableMapObj* MapItem::getLMO()
    1.86  {
    1.87  	return lmo;