insilmaril@795: #include insilmaril@795: #include "xlinkitem.h" insilmaril@795: insilmaril@795: #include "branchitem.h" insilmaril@795: #include "linkablemapobj.h" insilmaril@795: #include "vymmodel.h" insilmaril@795: #include "xlinkobj.h" insilmaril@795: insilmaril@795: #include insilmaril@795: using namespace std; insilmaril@795: insilmaril@795: ///////////////////////////////////////////////////////////////// insilmaril@795: // XLinkItem insilmaril@795: ///////////////////////////////////////////////////////////////// insilmaril@795: insilmaril@795: XLinkItem::XLinkItem (const QList &data, TreeItem *parent):MapItem (data,parent) insilmaril@795: insilmaril@795: { insilmaril@795: //cout << "Const XLinkItem () "<getHeading()); insilmaril@795: setHeading ("xLink to: "+endBranch->getHeading()); insilmaril@795: insilmaril@795: model->updateActions(); insilmaril@795: return true; insilmaril@795: } else insilmaril@795: return false; insilmaril@795: } insilmaril@795: insilmaril@795: bool XLinkItem::isBegin() insilmaril@795: { insilmaril@795: return isBeginXLink; insilmaril@795: } insilmaril@795: insilmaril@795: void XLinkItem::updateXLink() insilmaril@795: { insilmaril@795: if(lmo && isBeginXLink) insilmaril@795: ((XLinkObj*)lmo)->updateXLink(); insilmaril@795: else insilmaril@795: if (partnerXLink) partnerXLink->updateXLink(); insilmaril@795: } insilmaril@795: insilmaril@795: void XLinkItem::updateVisibility() insilmaril@795: { insilmaril@795: if (lmo) lmo->updateVisibility(); insilmaril@795: } insilmaril@795: insilmaril@795: BranchItem* XLinkItem::getPartnerBranch() insilmaril@795: { insilmaril@795: if (!beginBranch && !endBranch) insilmaril@795: return NULL; insilmaril@795: if (isBeginXLink) insilmaril@795: return endBranch; insilmaril@795: else insilmaril@795: return beginBranch; insilmaril@795: } insilmaril@795: insilmaril@814: BranchItem* XLinkItem::getOtherBranch(TreeItem *ti) insilmaril@814: { insilmaril@814: BranchItem *pb=getPartnerBranch(); insilmaril@814: if (!pb) return NULL; insilmaril@814: insilmaril@814: if (ti==beginBranch) insilmaril@814: return endBranch; insilmaril@814: else insilmaril@814: return beginBranch; insilmaril@814: } insilmaril@814: insilmaril@814: insilmaril@795: insilmaril@795: XLinkItem* XLinkItem::getPartnerXLink() insilmaril@795: { insilmaril@795: return partnerXLink; insilmaril@795: } insilmaril@795: insilmaril@795: insilmaril@795: QString XLinkItem::saveToDir () insilmaril@795: { insilmaril@795: QString s=""; insilmaril@795: if (beginBranch && endBranch && xLinkState==activeXLink) insilmaril@795: { insilmaril@795: if (beginBranch==endBranch ) insilmaril@795: qWarning ("XLI::saveToDir beginBranch==endBranch"); //FIXME-3 s="" insilmaril@795: else insilmaril@795: { insilmaril@795: QString colAttr=attribut ("color",color.name()); insilmaril@795: QString widAttr=attribut ("width",QString().setNum(width,10)); insilmaril@795: QString begSelAttr=attribut ("beginID",model->getSelectString(beginBranch)); insilmaril@795: QString endSelAttr=attribut ("endID", model->getSelectString(endBranch)); insilmaril@795: s=beginElement ("xlink", colAttr +widAttr +begSelAttr +endSelAttr); insilmaril@795: insilmaril@795: s+=endElement ("xlink"); insilmaril@795: } insilmaril@795: } insilmaril@795: return s; insilmaril@795: } insilmaril@795: insilmaril@795: XLinkObj* XLinkItem::createMapObj(QGraphicsScene *scene) insilmaril@795: { insilmaril@795: XLinkObj* xlo=new XLinkObj (scene,this); insilmaril@795: lmo=(LinkableMapObj*)xlo; insilmaril@795: return xlo; insilmaril@795: } insilmaril@795: