xlinkitem.cpp
author insilmaril
Mon, 14 Jun 2010 13:59:17 +0000
changeset 848 e265f07f2173
parent 847 43268373032d
permissions -rw-r--r--
Fixed tmp relink, colored headings in TreeView
insilmaril@795
     1
#include <QGraphicsScene>
insilmaril@795
     2
#include "xlinkitem.h"
insilmaril@795
     3
insilmaril@795
     4
#include "branchitem.h"
insilmaril@795
     5
#include "linkablemapobj.h"
insilmaril@795
     6
#include "vymmodel.h"
insilmaril@795
     7
#include "xlinkobj.h"
insilmaril@795
     8
insilmaril@795
     9
/////////////////////////////////////////////////////////////////
insilmaril@795
    10
// XLinkItem
insilmaril@795
    11
/////////////////////////////////////////////////////////////////
insilmaril@795
    12
insilmaril@795
    13
XLinkItem::XLinkItem (const QList<QVariant> &data, TreeItem *parent):MapItem (data,parent)
insilmaril@795
    14
insilmaril@795
    15
{
insilmaril@843
    16
	//qDebug() << "Const XLinkItem () "<<this;
insilmaril@795
    17
	init();
insilmaril@795
    18
}
insilmaril@795
    19
insilmaril@795
    20
XLinkItem::~XLinkItem ()
insilmaril@795
    21
{
insilmaril@847
    22
	//qDebug() << "Destr XLinkItem begin "<<this<<"  pI="<<parentItem<<"  link="<<link;
insilmaril@847
    23
	if (link)
insilmaril@825
    24
	{
insilmaril@847
    25
		// tell the model to remove the link later
insilmaril@847
    26
		// (and then remove partner link in VymModel::cleanupLinks)
insilmaril@847
    27
		model->deleteLink (link);
insilmaril@847
    28
		link->removeXLinkItem (this);
insilmaril@847
    29
		link->deactivate();
insilmaril@847
    30
	}	
insilmaril@847
    31
	//qDebug() << "Destr XLinkItem end"<<this;
insilmaril@795
    32
}
insilmaril@795
    33
insilmaril@795
    34
insilmaril@795
    35
void XLinkItem::init () 
insilmaril@795
    36
{
insilmaril@795
    37
	setType (XLink);
insilmaril@847
    38
	link=NULL;
insilmaril@795
    39
}
insilmaril@795
    40
insilmaril@847
    41
void XLinkItem::setLink (Link *l)
insilmaril@795
    42
{
insilmaril@847
    43
	link=l;
insilmaril@795
    44
}
insilmaril@795
    45
insilmaril@847
    46
Link* XLinkItem::getLink ()
insilmaril@795
    47
{
insilmaril@847
    48
	return link;
insilmaril@795
    49
}
insilmaril@795
    50
insilmaril@795
    51
void XLinkItem::updateXLink()
insilmaril@795
    52
{
insilmaril@847
    53
	qDebug()<<"XLI::updateXLink";
insilmaril@847
    54
	if (link)
insilmaril@847
    55
		link->updateLink();
insilmaril@795
    56
}
insilmaril@795
    57
insilmaril@795
    58
BranchItem* XLinkItem::getPartnerBranch()
insilmaril@795
    59
{
insilmaril@847
    60
	if (link && link->getBeginBranch() && link->getEndBranch())
insilmaril@847
    61
	{
insilmaril@847
    62
		if (parentItem==link->getBeginBranch())
insilmaril@847
    63
			return link->getEndBranch();
insilmaril@847
    64
		else	
insilmaril@847
    65
			return link->getBeginBranch();
insilmaril@847
    66
	}
insilmaril@847
    67
	return NULL;
insilmaril@795
    68
}
insilmaril@795
    69