/// <summary> /// /// </summary> public void Undo() { if (CanUndo) { m_IsProcessing = true; try { IUndoCommand command = m_Undo.Pop(); LogManager.Instance.WriteLine(LogVerbosity.Trace, "UndoRedo Undo({0}) : history list: {1} item(s)", command.ToString(), m_Undo.Count); command.Undo(); m_Redo.Push(command); OnPropertyChanged("CanUndo"); OnPropertyChanged("CanRedo"); if (UndoRedoCommandExecuted != null) { UndoRedoCommandExecuted(null, EventArgs.Empty); } } catch (System.Exception ex) { throw ex; } finally { m_IsProcessing = false; } } }
/// <summary>Function to perform an undo operation.</summary> /// <returns>A task representing the currently executing undo operation.</returns> public Task Undo() { if ((_undoStack.Count == 0) || (_undoIndex < 0)) { _undoIndex = -1; return(Task.FromResult <object>(null)); } try { IUndoCommand undo = _undoStack[_undoIndex--]; if (undo == null) { return(Task.FromResult <object>(null)); } _cancelSource = new CancellationTokenSource(); _log.Print($"Executing undo command for '{undo.Description}'.", LoggingLevel.Simple); Task task = undo.Undo(_cancelSource.Token); if (_cancelSource.Token.IsCancellationRequested) { ++_undoIndex; } return(task); } finally { _cancelSource?.Dispose(); _cancelSource = null; } }
public void Undo() { if (UndoCommands.Count == 0) { return; } IUndoCommand cmd = UndoCommands.Pop(); cmd.Undo(); RedoCommands.Push(cmd); undoCallback(); }
public void Undo() { if (this.undoStack.Count > 0) { IUndoCommand command = UndoStatckPopCommand(); if (command == null) { return; } command.Undo(); ReverseStackPushCommand(command); } }
public void Undo() { if (mUndoCommands.Count == 0) { return; } IUndoCommand cmd = mUndoCommands.Pop(); cmd.Undo(); mRedoCommands.Push(cmd); TextChangedEvent(); }
public void UndoCommand() { if (undoStack.Count == 0) { return; } IUndoCommand cmd = undoStack.Pop(); try { cmd.Undo(); view.IsModified = documentModifiedState; } finally { redoStack.Push(cmd); RaiseCanExecuteChanged(); } }