Beispiel #1
0
        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);
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
 }