void ShiftTimeline(int destColumn) { var delta = destColumn - timeline.CurrentColumn; if (delta > 0) { TimelineHorizontalShift.Perform(timeline.CurrentColumn, delta); } else if (delta < 0) { foreach (var node in Document.Current.Container.Nodes) { foreach (var animator in node.Animators.Where(i => i.AnimationId == Document.Current.AnimationId).ToList()) { RemoveKeyframeRange.Perform(animator, destColumn, timeline.CurrentColumn - 1); } } foreach (var marker in Document.Current.Animation.Markers.Where(m => m.Frame >= destColumn && m.Frame < timeline.CurrentColumn).ToList()) { DeleteMarker.Perform(marker, removeDependencies: false); } TimelineHorizontalShift.Perform(destColumn, delta); } }
public override void ExecuteTransaction() { TimelineHorizontalShift.Perform(UI.Timeline.Timeline.Instance.CurrentColumn, 1); }