public void Reset() { UndoCommands.Clear(); RedoCommands.Clear(); UpdateHistory(); }
internal void UndoRedoStacksChanged() { UndoCommands.Refresh(); OnPropertyChanged(nameof(UndoCommands)); RedoCommands.Refresh(); OnPropertyChanged(nameof(RedoCommands)); }
private void Overflow() { if (UndoCommands.Count <= MaxCommand) { return; } UndoCommands.RemoveLast(); }
public static void Redo() { if (RedoCommands.Count > 0) { ICommand temp = RedoCommands.Peek(); temp.Execute(); UndoCommands.Push(temp); RedoCommands.Pop(); } }
public static void Undo() { if (UndoCommands.Count > 0) { ICommand temp = UndoCommands.Peek(); temp.Undo(); RedoCommands.Push(temp); UndoCommands.Pop(); } }
private void Add() { if (m_currentCommand == null) { return; } RedoCommands.Clear(); UndoCommands.AddFirst(m_currentCommand.Clone()); Overflow(); UpdateHistory(); }
public ICommand Redo() { if (RedoCommands.Count == 0) { return(null); } ICommand command = RedoCommands.Pop(); UndoCommands.AddFirst(command); command.Redo(); UpdateHistory(); return(command); }
public ICommand Undo() { if (UndoCommands.Count == 0) { return(null); } ICommand command = UndoCommands.First.Value; command.Undo(); RedoCommands.Push(command); UndoCommands.RemoveFirst(); UpdateHistory(); return(command); }