示例#1
0
        public bool ValidateMove(ItemsPerTrack itemsGroup)
        {
            var track = itemsGroup.targetTrack;
            var items = itemsGroup.items;

            if (EditModeUtils.IsInfiniteTrack(track))
            {
                double startTime;
                double stopTime;
                EditModeUtils.GetInfiniteClipBoundaries(track, out startTime, out stopTime);

                return(items.All(item =>
                                 !EditModeUtils.IsItemWithinRange(item, startTime, stopTime) &&
                                 !EditModeUtils.IsRangeWithinItem(startTime, stopTime, item)));
            }

            var siblings = ItemsUtils.GetItemsExcept(itemsGroup.targetTrack, items);

            return(items.All(item => EditModeMixUtils.GetPlacementValidity(item, siblings) == PlacementValidity.Valid));
        }