Exemplo n.º 1
0
 public override void Undo()
 {
     foreach (var item in Positions)
     {
         TargetList.Insert(item.Key, item.Value);
     }
 }
Exemplo n.º 2
0
        public override void Do()
        {
            if (InsertIndex.Equals(-1))
            {
                foreach (var lyric in Items)
                {
                    if (!IsReverseAdd)
                    {
                        TargetList.Add(lyric);
                    }
                    else
                    {
                        TargetList.Insert(0, lyric);
                    }
                }
                return;
            }

            foreach (var lyric in Items)
            {
                if (!IsReverseAdd)
                {
                    TargetList.Insert(InsertIndex + 1, lyric);
                }
                else
                {
                    TargetList.Insert(InsertIndex, lyric);
                }
            }
        }
Exemplo n.º 3
0
        private void ItemSort(Lyric sourceLyric)
        {
            int  id     = TargetList.IndexOf(sourceLyric);
            bool isMove = false;

            for (int i = id; i > 0; i--)
            {
                Lyric beforeLyric  = TargetList[i - 1];
                Lyric currentLyric = TargetList[i];

                if (currentLyric != sourceLyric)
                {
                    break;
                }

                if (currentLyric.CompareTo(beforeLyric) < 0)
                {
                    TargetList.Insert(i + 1, beforeLyric);
                    TargetList.Remove(beforeLyric);

                    isMove = true;
                }
            }

            if (!_isInvoked && isMove && !_changedList.Contains(sourceLyric))
            {
                _changedList.Add(sourceLyric);
            }
        }
Exemplo n.º 4
0
 public override void Undo()
 {
     foreach (var item in Positions.Where(d => _changedList.Contains(d.Value)))
     {
         TargetList.Remove(item.Value);
         TargetList.Insert(item.Key, item.Value);
     }
 }
Exemplo n.º 5
0
        public override void Do()
        {
            int insertId = _insertId + 1;

            if (_isDoed)
            {
                foreach (var lyric in _addItems)
                {
                    TargetList.Insert(insertId++, lyric);
                }
            }
            else
            {
                foreach (var lyric in Positions.Values.OrderBy(l => l).ToList())
                {
                    var time    = _isBig ? lyric.Time - _interpolation : lyric.Time + _interpolation;
                    var addItem = new Lyric(time, lyric.Content);
                    _addItems.Add(addItem);
                    TargetList.Insert(insertId++, addItem);
                }
            }

            _isDoed = true;
        }