diff -r f0fe7c36ec5c -r 43268373032d xlinkobj.cpp --- a/xlinkobj.cpp Fri Apr 09 14:24:04 2010 +0000 +++ b/xlinkobj.cpp Wed Jun 09 13:14:08 2010 +0000 @@ -1,11 +1,9 @@ +#include + #include "xlinkobj.h" #include "branchobj.h" #include "branchitem.h" -#include "xlinkitem.h" - -#include -using namespace std; ///////////////////////////////////////////////////////////////// // XLinkObj @@ -13,16 +11,18 @@ int XLinkObj::arrowSize=10; // make instances -XLinkObj::XLinkObj (QGraphicsScene* scene, TreeItem* ti):MapObj(scene,ti) +XLinkObj::XLinkObj (QGraphicsScene* scene,Link *l):MapObj(scene) { - //cout << "Const XLinkObj (s)\n"; + //qDebug()<< "Const XLinkObj (s,Link)"; + link=l; init(); } + XLinkObj::~XLinkObj () { - //cout << "Destr XLinkObj\n"; + //qDebug() << "Destr XLinkObj"; delete (line); delete (poly); } @@ -30,16 +30,15 @@ void XLinkObj::init () { - XLinkItem *xli=(XLinkItem*)treeItem; visBranch=NULL; - pen.setColor ( xli->getColor() ); - pen.setWidth ( xli->getWidth() ); + pen.setColor ( link->getColor() ); + pen.setWidth ( link->getWidth() ); pen.setCapStyle ( Qt::RoundCap ); line=scene->addLine(QLineF(1,1,1,1),pen); - line->setZValue (Z_XLINK); - poly=scene->addPolygon(QPolygonF(),pen, xli->getColor()); - poly->setZValue (Z_XLINK); + line->setZValue (Z_LINK); + poly=scene->addPolygon(QPolygonF(),pen, link->getColor()); + poly->setZValue (Z_LINK); setVisibility (true); } @@ -53,7 +52,7 @@ { QPointF a,b; QPolygonF pa; - if (visBranch) + if (visBranch) { // Only one of the linked branches is visible BranchObj *bo=(BranchObj*)(visBranch->getLMO()); @@ -81,7 +80,7 @@ } else { // Both linked branches are visible - BranchItem *bi=((XLinkItem*)treeItem)->getBegin(); + BranchItem *bi=link->getBeginBranch(); if ( bi) { // If a link is just drawn in the editor, @@ -96,8 +95,7 @@ // This shouldn't be reached normally... a=beginPos; - // FIXME-3 try to get rid of xLinkstate if (xLinkState==activeXLink && endBranch) - bi=((XLinkItem*)treeItem)->getEnd(); + bi=link->getEndBranch(); if (bi) { BranchObj *bo=(BranchObj*)(bi->getLMO()); @@ -112,10 +110,9 @@ beginPos=a; endPos=b; - XLinkItem *xli=(XLinkItem*)treeItem; - pen.setColor ( xli->getColor() ); - pen.setWidth ( xli->getWidth() ); - poly->setBrush (xli->getColor() ); + pen.setColor ( link->getColor() ); + pen.setWidth ( link->getWidth() ); + poly->setBrush (link->getColor() ); line->setPen (pen); line->setLine(a.x(), a.y(), b.x(), b.y()); } @@ -148,12 +145,12 @@ void XLinkObj::setVisibility () { - BranchItem* beginBI=((XLinkItem*)treeItem)->getBegin(); + BranchItem* beginBI=link->getBeginBranch(); BranchObj* beginBO=NULL; if (beginBI) beginBO=(BranchObj*)(beginBI->getLMO()); BranchObj* endBO=NULL; - BranchItem* endBI=((XLinkItem*)treeItem)->getEnd(); + BranchItem* endBI=link->getEndBranch(); if (endBI) endBO=(BranchObj*)(endBI->getLMO()); if (beginBO && endBO) {