Example #1
0
        /// <summary>
        /// 刷新指定项的标记
        /// </summary>
        /// <param name="item"></param>
        /// <param name="info"></param>
        void RefreshItemMask(ListViewItem item, ITorrentResourceInfo info)
        {
            string maskName;
            var    mask = Context.Instance.GetResourceMark(info, out maskName);

            if (mask != null)
            {
                item.ForeColor        = mask.Color;
                item.BackColor        = mask.BackColor;
                item.SubItems[3].Text = maskName;
            }
            else
            {
                item.ForeColor        = SystemColors.WindowText;
                item.BackColor        = SystemColors.Window;
                item.SubItems[3].Text = "";
            }
        }
Example #2
0
        ListViewItem CreateListViewItem(ITorrentResourceInfo info)
        {
            var item = new ListViewItem(new[]
            {
                info.Title.GetSubString(100),
                info.DownloadSizeValue == null ? info.DownloadSize : info.DownloadSizeValue.Value.ToSizeDescription(),
                info.FileCount == null?"" :info.FileCount.Value.ToString("N0"),
                "",
                info.UpdateTime == null ? info.UpdateTimeDesc : info.UpdateTime.Value.ToString("yyyy-MM-dd")
            });

            item.ImageIndex = 0;
            item.Tag        = info;
            item.UseItemStyleForSubItems = true;

            if (!info.IsHashLoaded)
            {
                info.DetailLoaded += TorrentOperation.MainForm.SaveInvoke((s, e) =>
                {
                    {
                        var tinfo = s as ITorrentResourceInfo;
                        if (!_itemCache.ContainsKey(tinfo.Hash))
                        {
                            _itemCache.Add(tinfo.Hash, lv.Items.Cast <ListViewItem>().FirstOrDefault(x => x.Tag == tinfo));

                            RefreshItemMask(_itemCache[tinfo.Hash], tinfo);
                        }
                    }
                });
            }
            else
            {
                RefreshItemMask(item, info);
            }
            return(item);
        }