public void CopyAfterBlock(Block afterBlock) { IEnumerable <Block> blocksToCopy = PrepareBlocksToMove(); IEnumerable <Block> newBlocks = BlockActions.Clone(blocksToCopy); afterBlock.AppendBlocks(newBlocks); }
public void AcceptBlocks(DragQuery draggedBlocks, DragQueryResult whereTo) { if (whereTo.DropTargetContainer.CanAcceptBlocks(draggedBlocks) == null) { return; } IEnumerable <Block> toDrop; if (draggedBlocks.ShouldCopyInsteadOfMove) { toDrop = BlockActions.Clone(draggedBlocks); toDrop = IntersperseWithSeparators(toDrop, whereTo); if (whereTo.HowToDrop == DropTargetInfo.DropBeforeTarget) { whereTo.DropTarget.PrependBlocks(toDrop); } else { whereTo.DropTarget.AppendBlocks(toDrop); } } else { using (Root.Transaction()) { foreach (Block b in draggedBlocks) { b.Delete(); } toDrop = IntersperseWithSeparators(draggedBlocks, whereTo); if (whereTo.HowToDrop == DropTargetInfo.DropBeforeTarget) { whereTo.DropTarget.PrependBlocks(toDrop); } else { whereTo.DropTarget.AppendBlocks(toDrop); } } } }