Example #1
0
        /// <summary>
        /// 添加子项
        /// </summary>
        /// <param name="resource"></param>
        public void AppendSubResult(IResourceInfo resource)
        {
            if (ChildItems.Cast <ResourceListViewItem>().Any(s => s.Resource.Provider == resource) || (Resource != null && Resource.Provider == resource.Provider))
            {
                return;
            }

            if (!_subItemCreated)
            {
                _subItemCreated = true;

                var res = Resource;
                ChildItems.Add(new ResourceListViewItem(res, true));

                //重置图标
                ImageKey = "torrent_multi";
                IsBold   = true;
            }

            //设置资源大小
            if (Resource.DownloadSizeCalcauted == 0L)
            {
                Resource.DownloadSize      = resource.DownloadSize;
                Resource.DownloadSizeValue = resource.DownloadSizeValue;
                SubItems[3].Text           = resource.DownloadSizeValue == null ? (resource.DownloadSizeCalcauted == 0L ? resource.DownloadSize.DefaultForEmpty("<未知>") : resource.DownloadSizeCalcauted.ToSizeDescription()) : resource.DownloadSizeValue.Value.ToSizeDescription();
            }
            if (Resource.SupportPreivewType == PreviewType.None)
            {
                Resource.PreviewInfo        = Resource.PreviewInfo ?? resource.PreviewInfo;
                Resource.SupportPreivewType = resource.SupportPreivewType;
                Resource_PreviewTypeChanged(this, null);
            }

            //状态
            if (Resource.VerifyState == VerifyState.Unknown || Resource.VerifyState == VerifyState.None)
            {
                if (resource.VerifyState != VerifyState.Unknown && resource.VerifyState != VerifyState.None)
                {
                    Resource.ChangeVerifyState(resource.VerifyState, resource.ReportNum);
                }
            }
            else
            {
                resource.ChangeVerifyState(Resource.VerifyState, Resource.ReportNum);
            }
            if (resource.Downloaded || Resource.Downloaded)
            {
                resource.ChangeDownloadedStatus(true);
                Resource.ChangeDownloadedStatus(true);
            }

            ChildItems.Add(new ResourceListViewItem(resource, true));
            CheckRowStyle();
        }