internal SceneEditTransaction(IExternalChanges externalChanges, SceneDocument document, IUndoTransaction undo) { this.document = document; this.delayExternalChanges = externalChanges != null?externalChanges.DelayNotification() : (IDisposable)null; this.undo = undo; }
public void Create(bool haveRealTransaction = true) { _factory = new MockRepository(MockBehavior.Strict); if (haveRealTransaction) { _realTransaction = _factory.Create<ITextUndoTransaction>(); _transactionRaw = new UndoTransaction(FSharpOption.Create(_realTransaction.Object)); } else { _transactionRaw = new UndoTransaction(FSharpOption<ITextUndoTransaction>.None); } _transaction = _transactionRaw; }
public void Create(bool haveRealTransaction = true) { _factory = new MockRepository(MockBehavior.Strict); if (haveRealTransaction) { _realTransaction = _factory.Create <ITextUndoTransaction>(); _transactionRaw = new UndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object)); } else { _transactionRaw = new UndoTransaction("Undo", FSharpOption <ITextUndoTransaction> .None); } _transaction = _transactionRaw; }
public void Create(bool haveRealTransaction = true) { _factory = new MockRepository(MockBehavior.Strict); var undoRedoOperations = new UndoRedoOperations(VimHost, new StatusUtil(), FSharpOption<ITextUndoHistory>.None, EditorOperationsFactoryService); if (haveRealTransaction) { _realTransaction = _factory.Create<ITextUndoTransaction>(); _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object), undoRedoOperations); } else { _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption<ITextUndoTransaction>.None, undoRedoOperations); } _transaction = _transactionRaw; }
internal void Cancel(bool notifyDocument) { if (this.undo == null) { return; } try { this.undo.Cancel(); this.undo = (IUndoTransaction)null; this.document.OnCanceledEditTransaction(notifyDocument); } finally { this.EnableExternalChanges(); } }
public void Create(bool haveRealTransaction = true) { _factory = new MockRepository(MockBehavior.Strict); var undoRedoOperations = new UndoRedoOperations(VimHost, new StatusUtil(), FSharpOption <ITextUndoHistory> .None, EditorOperationsFactoryService); if (haveRealTransaction) { _realTransaction = _factory.Create <ITextUndoTransaction>(); _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption.Create(_realTransaction.Object), undoRedoOperations); } else { _transactionRaw = new NormalUndoTransaction("Undo", FSharpOption <ITextUndoTransaction> .None, undoRedoOperations); } _transaction = _transactionRaw; }
protected override void PopTransaction(bool commit) { if (this.undoService != null) { IUndoTransaction undoTransaction = this.transactions.Pop(); if (commit) { undoTransaction.Commit(); } else { undoTransaction.Cancel(); } } else { base.PopTransaction(commit); } }
public void Commit(bool notifyDocument) { if (this.undo == null) { return; } try { if (notifyDocument) { this.document.OnCompletingEditTransaction(); } this.undo.Commit(); this.undo = (IUndoTransaction)null; this.document.OnCompletedEditTransaction(notifyDocument); } finally { this.EnableExternalChanges(); } }
public SceneEditTransaction CreateEditTransaction(string description, bool hidden, SceneEditTransactionType transactionType) { if (this.autoClosingTransactionStack.Count > 0 && transactionType != SceneEditTransactionType.NestedInAutoClosing) { bool flag = false; foreach (KeyValuePair <SceneEditTransaction, SceneEditTransactionType> keyValuePair in this.autoClosingTransactionStack) { if (keyValuePair.Value == SceneEditTransactionType.NestedInAutoClosing) { flag = true; break; } } if (!flag) { KeyValuePair <SceneEditTransaction, SceneEditTransactionType> keyValuePair = this.autoClosingTransactionStack.Pop(); if (keyValuePair.Value == SceneEditTransactionType.AutoCommitting) { keyValuePair.Key.Commit(); } else { keyValuePair.Key.Cancel(); } } } IUndoTransaction undo = this.UndoService.CreateUndo(description, hidden); ++this.openEditTransactionCount; SceneEditTransaction key = new SceneEditTransaction(this.designerContext.ExternalChanges, this, undo); if (this.autoClosingTransactionStack.Count > 0 || transactionType == SceneEditTransactionType.AutoCommitting || transactionType == SceneEditTransactionType.AutoCancelling) { this.autoClosingTransactionStack.Push(new KeyValuePair <SceneEditTransaction, SceneEditTransactionType>(key, transactionType)); } return(key); }