Example #1
0
        public IEnumerator <object> LoadRange(Pair <int> range)
        {
            PendingLoadPair = range;

            LoadingPanel.Text     = "Generating diff...";
            LoadingProgress.Value = 0;
            LoadingProgress.Style = ProgressBarStyle.Marquee;

            MainMenuStrip.Enabled = false;
            LoadingPanel.Visible  = true;
            MainSplit.Visible     = false;
            UseWaitCursor         = true;

            var s1 = Instance.Snapshots[range.First];
            var s2 = Instance.Snapshots[range.Second];

            Timeline.Selection = range;

            var f = Start(Instance.DiffSnapshots(s1, s2));

            using (f)
                yield return(f);

            var filename = f.Result as string;

            if (filename != null)
            {
                f = Start(LoadDiff(filename));
                using (f)
                    yield return(f);
            }
            else
            {
                DiffLoaded(f.Result as HeapDiff, "unknown");
            }

            PendingLoadPair = Pair.New(-1, -1);
            CurrentPair     = range;

            Text = "Diff Viewer - " + String.Format("{0} - {1}", s1.Timestamp.ToLongTimeString(), s2.Timestamp.ToLongTimeString());
        }