Esempio n. 1
0
 public void Dispose()
 {
     if (_track.Timeline.Undo != null)
     {
         var after = EditTrackAction.CaptureData(_track);
         if (!FlaxEngine.Utils.ArraysEqual(_before, after))
         {
             var action = new EditTrackAction(_track.Timeline, _track, _before, after);
             if (_customActionAfter != null && _customActionBefore != null)
             {
                 _track.Timeline.Undo.AddAction(new MultiUndoAction(_customActionBefore, action, _customActionAfter));
             }
             else if (_customActionAfter != null)
             {
                 _track.Timeline.Undo.AddAction(new MultiUndoAction(action, _customActionAfter));
             }
             else if (_customActionBefore != null)
             {
                 _track.Timeline.Undo.AddAction(new MultiUndoAction(_customActionBefore, action));
             }
             else
             {
                 _track.Timeline.Undo.AddAction(action);
             }
         }
         _before             = null;
         _customActionBefore = null;
         _customActionAfter  = null;
     }
     _track = null;
 }
Esempio n. 2
0
 public TrackUndoBlock(Track track, IUndoAction customActionBefore = null, IUndoAction customActionAfter = null)
 {
     _track = track;
     if (_track.Timeline.Undo != null)
     {
         _customActionBefore = customActionBefore;
         _customActionAfter  = customActionAfter;
         _before             = EditTrackAction.CaptureData(track);
     }
 }