diff -r e3f722759c7e -r 340bc29da9a0 mapeditor.cpp --- a/mapeditor.cpp Wed May 20 15:40:14 2009 +0000 +++ b/mapeditor.cpp Tue May 26 11:23:44 2009 +0000 @@ -560,7 +560,7 @@ } BranchObj *bo=model->getSelectedBranchObj(); BranchItem *bi=model->getSelectedBranchItem(); - if (bo) //FIXME-3 + if (bo) { model->setSelectionBlocked(true); @@ -680,14 +680,13 @@ QPointF p = mapToScene(e->pos()); TreeItem *ti=findMapItem (p, NULL); LinkableMapObj* lmo=NULL; - if (ti) lmo=ti->getLMO(); //FIXME-2 get rid of lmo... + if (ti) lmo=ti->getLMO(); //FIXME-3 get rid of lmo... e->accept(); //Take care of system flags _or_ modifier modes // - if (lmo && (typeid(*lmo)==typeid(BranchObj) || - typeid(*lmo)==typeid(MapCenterObj) )) + if (lmo && ti->isBranchLikeType() ) { QString foname=((BranchObj*)lmo)->getSystemFlagName(p); if (!foname.isEmpty()) @@ -866,27 +865,23 @@ if ( (e->modifiers()==Qt::ShiftModifier) && dst && ( dst != fio->getParObj()) ) { - if (typeid(*fio) == typeid(FloatImageObj) ) - { + // Also save the move which was done so far + QString pold=qpointfToString(movingObj_orgRelPos); + QString pnow=qpointfToString(fio->getRelPos()); + model->saveState( + fio->getTreeItem(), // FIXME-3 + "moveRel "+pold, + fio->getTreeItem(), + "moveRel "+pnow, + QString("Move %1 to relative position %2").arg(model->getObjectName(fio)).arg(pnow)); + fio->getParObj()->requestReposition(); + model->reposition(); - // Also save the move which was done so far - QString pold=qpointfToString(movingObj_orgRelPos); - QString pnow=qpointfToString(fio->getRelPos()); - model->saveState( - fio->getTreeItem(), // FIXME-3 - "moveRel "+pold, - fio->getTreeItem(), - "moveRel "+pnow, - QString("Move %1 to relative position %2").arg(model->getObjectName(fio)).arg(pnow)); - fio->getParObj()->requestReposition(); - model->reposition(); + model->linkFloatImageTo (model->getSelectString(dst)); + //movingObj=lmosel; + //movingObj_orgRelPos=lmosel->getRelPos(); - model->linkFloatImageTo (model->getSelectString(dst)); - //movingObj=lmosel; - //movingObj_orgRelPos=lmosel->getRelPos(); - - model->reposition(); - } + model->reposition(); } } else { // selection != a FloatObj @@ -894,7 +889,9 @@ { // Move MapCenter if (e->buttons()== Qt::LeftButton && e->modifiers()==Qt::ShiftModifier) - ((MapCenterObj*)lmosel)->moveAll(p.x() -movingObj_start.x(), p.y()-movingObj_start.y() ); + ((BranchObj*)lmosel)->moveBy( + QPointF(p.x() -movingObj_start.x(), + p.y()-movingObj_start.y()) ); else lmosel->move (p.x() -movingObj_start.x(), p.y()-movingObj_start.y() ); model->updateRelPositions(); @@ -1051,7 +1048,7 @@ } } - if (seli->getType() == TreeItem::Branch ) + if (seli->isBranchLikeType() ) //(seli->getType() == TreeItem::Branch ) { // A branch was moved LinkableMapObj* lmosel=NULL; //FIXME-2 get rid of lmosel lmosel=seli->getLMO(); @@ -1063,7 +1060,7 @@ lmosel->unsetParObjTmp(); // For Redo we may need to save original selection - QString preSelStr=model->getSelectString(lmosel); + QString preSelStr=model->getSelectString(seli); copyingObj=false; if (dsti)