Beispiel #1
0
        public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace)
        {
            DateTime lastUpdate = DateTime.Now;

            documentWorkspace.History.BeginStepGroup();

            using (new WaitCursorChanger(documentWorkspace))
            {
                documentWorkspace.SuspendToolCursorChanges();

                while (documentWorkspace.History.UndoStack.Count > 1)
                {
                    documentWorkspace.History.StepBackward();

                    if ((DateTime.Now - lastUpdate).TotalMilliseconds >= 500)
                    {
                        documentWorkspace.History.EndStepGroup();
                        documentWorkspace.Update();
                        lastUpdate = DateTime.Now;
                        documentWorkspace.History.BeginStepGroup();
                    }
                }

                documentWorkspace.ResumeToolCursorChanges();
            }

            documentWorkspace.History.EndStepGroup();

            Utility.GCFullCollect();
            documentWorkspace.Document.Invalidate();
            documentWorkspace.Update();

            return(null);
        }
        public override HistoryMemento PerformAction(DocumentWorkspace documentWorkspace)
        {
            DateTime lastUpdate = DateTime.Now;

            documentWorkspace.History.BeginStepGroup();

            using (new WaitCursorChanger(documentWorkspace))
            {
                documentWorkspace.SuspendToolCursorChanges();

                while (documentWorkspace.History.RedoStack.Count > 0)
                {
                    documentWorkspace.History.StepForward();

                    if ((DateTime.Now - lastUpdate).TotalMilliseconds >= 500)
                    {
                        documentWorkspace.History.EndStepGroup();
                        documentWorkspace.Update();
                        lastUpdate = DateTime.Now;
                        documentWorkspace.History.BeginStepGroup();
                    }
                }

                documentWorkspace.ResumeToolCursorChanges();
            }

            documentWorkspace.History.EndStepGroup();

            Utility.GCFullCollect();
            documentWorkspace.Document.Invalidate();
            documentWorkspace.Update();

            return null;
        }
Beispiel #3
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);
        }