bool InsertIntoEdgeCommand::restoreState() { if (mRemoveOldEdge && mCreateSecond && mCreateFirst) { mScene.returnElementsToOldPositions(mElementShifting); mRemoveOldEdge->undo(); mOldEdge = mRemoveOldEdge->elementId(); EdgeElement *edge = mScene.getEdgeById(mOldEdge); edge->setSrc(mScene.getEdgeById(mCreateFirst->result())->src()); edge->setDst(mScene.getEdgeById(mCreateSecond->result())->dst()); mScene.reConnectLink(edge); mGraphicalAssistApi.setConfiguration(edge->id(), mConfiguration); mCreateSecond->undo(); mCreateFirst->undo(); } if (mCreateCommand) { mCreateCommand->undo(); } return true; }