Example #1
0
        public override void UndoInfo(ObjectListView olv)
        {
            foreach (AnimeStack astk in this.AniStack)
            {
                switch (astk.EType)
                {
                case EditType.Add:
                case EditType.Copy:
                    this.Total--;
                    this.Space -= astk.EAnime.Size;
                    this.Uid--;
                    olv.RemoveObject(astk.EAnime);

                    break;

                case EditType.Modify:
                    Anime ma = astk.OrgAnime;
                    this.Space += astk.EAnime.Size - ma.Size;
                    ma.RevertSelf(astk.EAnime);
                    olv.RefreshObject(ma);
                    // bug sel name also change
                    if (olv.SelectedObject == ma)
                    {
                        Form.tsslSelName.Text  = String.Format("Selected: {0}", ma.Name);
                        Form.tsslSelSpace.Text = String.Format("Selected Size: {0}", FormatAnimeSize(ma.Size));
                        this.OnRemarkChanged();
                    }

                    break;

                case EditType.Delete:
                    this.Total++;
                    this.Space += astk.EAnime.Size;
                    olv.AddObject(astk.EAnime);
                    break;
                }
            }

            this.AniStack.Clear();

            base.UndoInfo(olv);
        }