public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { DateTime utcNow = DateTime.UtcNow; documentWorkspace.History.BeginStepGroup(); using (new WaitCursorChanger(documentWorkspace)) { documentWorkspace.SuspendToolCursorChanges(); while (documentWorkspace.History.UndoStack.Count > 1) { documentWorkspace.History.StepBackward(documentWorkspace); CleanupManager.RequestCleanup(); TimeSpan span = (TimeSpan)(DateTime.UtcNow - utcNow); if (span.TotalMilliseconds >= 500.0) { documentWorkspace.History.EndStepGroup(); documentWorkspace.QueueUpdate(); utcNow = DateTime.UtcNow; documentWorkspace.History.BeginStepGroup(); } } documentWorkspace.ResumeToolCursorChanges(); } documentWorkspace.History.EndStepGroup(); CleanupManager.RequestCleanup(); documentWorkspace.Document.Invalidate(); documentWorkspace.QueueUpdate(); return(null); }
public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { if (documentWorkspace.History.RedoStack.Count > 0) { if (!(documentWorkspace.History.RedoStack[documentWorkspace.History.RedoStack.Count - 1] is NullHistoryMemento)) { using (new WaitCursorChanger(documentWorkspace.FindForm())) { documentWorkspace.History.StepForward(documentWorkspace); documentWorkspace.QueueUpdate(); } } CleanupManager.RequestCleanup(); } return(null); }
public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace) { if (!ScanningAndPrinting.CanPrint) { ShowWiaError(documentWorkspace); return(null); } using (new PushNullToolMode(documentWorkspace)) { Surface surface = documentWorkspace.BorrowScratchSurface(base.GetType().Name + ".PerformAction()"); try { surface.Clear(); RenderArgs args = new RenderArgs(surface); documentWorkspace.QueueUpdate(); using (new WaitCursorChanger(documentWorkspace)) { args.Surface.Clear(ColorBgra.White); documentWorkspace.Document.Render(args, false); } string filename = Path.GetTempFileName() + ".bmp"; args.Bitmap.Save(filename, ImageFormat.Bmp); try { ScanningAndPrinting.Print(documentWorkspace, filename); } catch (Exception) { ShowWiaError(documentWorkspace); } bool flag = FileSystem.TryDeleteFile(filename); } catch (Exception exception) { ExceptionDialog.ShowErrorDialog(documentWorkspace, exception); } finally { documentWorkspace.ReturnScratchSurface(surface); } } return(null); }