Esempio n. 1
0
        public void AddOperation(IUndoRedoOperation operation)
        {
            if (operation == null)
            {
                return;
            }

            undoStack.Push(operation);
            redoStack.Clear();
        }
Esempio n. 2
0
        public void AddOperation(IUndoRedoOperation operation)
        {
            if (operation == null)
            {
                return;
            }

            undoStack.Push(operation);
            redoStack.Clear();
            AddUndoOperationEvent?.Invoke(this, EventArgs.Empty);
        }
Esempio n. 3
0
 /// <summary>
 /// Call this method to redo the last undone operation
 /// </summary>
 public void Redo()
 {
     AssertNoUndoGroupOpen();
     if (redostack.Count > 0)
     {
         IUndoRedoOperation uedit = (IUndoRedoOperation)redostack.Pop();
         undostack.Push(uedit);
         uedit.Redo();
         OnActionRedone();
     }
 }
Esempio n. 4
0
        private void AddOperationToUndoStack(IUndoRedoOperation operation)
        {
            if (ActiveTransactionIdCount >= Constants.UndoRedoTransactionCapacity)
            {
                var transactionIdToRemove = UndoStack.First?.Value.TransactionId;
                while (UndoStack.First?.Value.TransactionId == transactionIdToRemove)
                {
                    UndoStack.RemoveFirst();
                }

                --ActiveTransactionIdCount;
            }

            UndoStack.AddLast(operation);
        }
Esempio n. 5
0
        /// <summary>
        /// Call this method to push an UndoableOperation on the undostack, the redostack
        /// will be cleared, if you use this method.
        /// </summary>
        public void Push(IUndoRedoOperation operation)
        {
            if (operation == null)
            {
                throw new ArgumentNullException("operation");
            }

            if (AcceptChanges)
            {
                StartUndoGroup();
                undostack.Push(operation);
                actionCountInUndoGroup++;
                if (TextEditorControl != null)
                {
                    undostack.Push(new UndoRedoSetCaretPosition(this, TextEditorControl.Caret.Position));
                    actionCountInUndoGroup++;
                }
                EndUndoGroup();
                ClearRedoStack();
            }
        }
Esempio n. 6
0
 public OperationEventArgs(IUndoRedoOperation op)
 {
     this.op = op;
 }
Esempio n. 7
0
 public void AddOperationToRedoneOperations(IUndoRedoOperation undoRedoOperation)
 {
     RedoneOperations.Add(undoRedoOperation);
     OnPropertyChanged(nameof(CanRedo));
 }