public void ChangeTrack(Track trk) { lock (LoadSync) { using (_tracksync.AcquireWrite()) { AudioService.Stop(); CurrentTools.SelectedTool.Stop(); _loadingTrack = true; Stop(); _flag = null; _track = trk; Timeline = new Timeline(trk); Timeline.FrameInvalidated += FrameInvalidated; InitCamera(); _refreshtrack = true; _cells.Clear(); foreach (var line in trk.LineLookup.Values) { _cells.AddLine(line); } Reset(); Camera.SetFrameCenter(Timeline.GetFrame(0).CalculateCenter()); _loadingTrack = false; if (CurrentTools.SelectedTool.Active) { CurrentTools.SelectedTool.Stop(); } UndoManager = new UndoManager(); ResetTrackChangeCounter(); } } Invalidate(); GC.Collect();//this is probably safest place to make the gc work MoveStartWarned = false; }
public void ResetUndo() { UndoManager = new UndoManager(this); }
/// <summary> /// Disables saving changes to the undo buffer. /// </summary> public void DisableUndo() { _undo = null; }
public Track() { UndoManager = new UndoManager(this); }