diff -r d85834ad8c54 -r 133e2ed6b9c5 mapeditor.cpp --- a/mapeditor.cpp Mon Aug 24 14:39:07 2009 +0000 +++ b/mapeditor.cpp Thu Sep 03 08:52:00 2009 +0000 @@ -10,6 +10,7 @@ #include "mainwindow.h" #include "misc.h" #include "warningdialog.h" +#include "xlinkitem.h" extern int statusbarTime; @@ -881,6 +882,7 @@ LinkableMapObj* lmo=NULL; if (ti) lmo=((MapItem*)ti)->getLMO(); + e->accept(); //Take care of system flags _or_ modifier modes @@ -923,22 +925,15 @@ } if (mainWindow->getModMode()==Main::ModModeXLink) { - BranchObj *bo_begin=NULL; - if (lmo) - bo_begin=(BranchObj*)(lmo); - else - bo_begin=model->getSelectedBranchObj(); - if (bo_begin) + BranchItem *bi_begin=model->getSelectedBranch(); + if (bi_begin) { drawingLink=true; - linkingObj_src=bo_begin; - tmpXLink=new XLinkObj (mapScene); - tmpXLink->setBegin (bo_begin); - tmpXLink->setEnd (p); + tmpXLink=model->createXLink(bi_begin,true); tmpXLink->setColor(model->getMapDefXLinkColor()); tmpXLink->setWidth(model->getMapDefXLinkWidth()); + tmpXLink->setEnd (p); tmpXLink->updateXLink(); - tmpXLink->setVisibility (true); return; } } @@ -1192,13 +1187,13 @@ // Check if we are over another branch if (dsti) { - tmpXLink->setEnd ( ((BranchObj*)(dst)) ); + tmpXLink->setEnd ( ((BranchItem*)dsti) ); tmpXLink->updateXLink(); - tmpXLink->activate(); //FIXME-2 savestate missing - //model->saveStateComplete(QString("Activate xLink from %1 to %2").arg(model->getObjectName(tmpXLink->getBegin())).arg(model->getObjectName(tmpXLink->getEnd())) ); + tmpXLink->activate(); + //FIXME-0 model->saveStateComplete(QString("Activate xLink from %1 to %2").arg(model->getObjectName(tmpXLink->getBegin())).arg(model->getObjectName(tmpXLink->getEnd())) ); } else { - delete(tmpXLink); + model->deleteItem(tmpXLink); tmpXLink=NULL; } return;