private void addCardsToPreview(MtgLayoutView view, List <Card> cardsToPreloadImage)
        {
            var pageSize = _scrollSubsystem.GetPageSize(view);

            int visibleRecordIndex = view.VisibleRecordIndex;

            bool endReached   = false;
            bool startReached = false;
            int  i            = 0;

            while (true)
            {
                if (startReached && endReached)
                {
                    return;
                }

                int maxPreload = Math.Min(_uiConfigRepository.Config.ImageCacheCapacity * 3 / 4 - pageSize, pageSize * 10);
                if (cardsToPreloadImage.Count > maxPreload)
                {
                    return;
                }

                startReached |= !add(visibleRecordIndex - i - 1);
                endReached   |= !add(visibleRecordIndex + pageSize + i);

                i++;
            }

            bool add(int j)
            {
                if (j < 0 || j >= view.RowCount)
                {
                    return(false);
                }

                int handle = view.GetVisibleRowHandle(j);
                var card   = (Card)view.FindRow(handle);

                if (card == null)
                {
                    return(false);
                }

                cardsToPreloadImage.Add(card);
                return(true);
            }
        }
Exemple #2
0
        private static bool preload(List <Card> cardsToPreloadImage, MtgLayoutView view, int i)
        {
            if (i < 0 || i >= view.RowCount)
            {
                return(false);
            }

            int handle = view.GetVisibleRowHandle(i);
            var card   = (Card)view.GetRow(handle);

            if (card == null)
            {
                return(false);
            }

            cardsToPreloadImage.Add(card);
            return(true);
        }