private void TransferList_MouseClick(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } TreeListNode node = TransferList.GetNodeAt(e.Location) as TreeListNode; if (node == null || node.GetType() != typeof(TransferNode)) { return; } ContextMenuStripEx menu = new ContextMenuStripEx(); TransferNode transfer = node as TransferNode; menu.Items.Add(new ToolStripMenuItem("Copy Hash to Clipboaard", null, (s, o) => { Clipboard.SetText(Utilities.ToBase64String(transfer.Transfer.Details.Hash)); })); menu.Show(TransferList, e.Location); }
private void RefreshView() { Dictionary<ulong, OpTransfer> displayMap = new Dictionary<ulong, OpTransfer>(); if (ShowDownloads.Checked) foreach (OpTransfer download in Service.Transfers.Values.Where(t => t.Status != TransferStatus.Complete)) displayMap[download.FileID] = download; if (ShowUploads.Checked) foreach (OpTransfer upload in Service.Transfers.Values.Where(t => t.Status == TransferStatus.Complete)) displayMap[upload.FileID] = upload; if (ShowPending.Checked) foreach (OpTransfer pending in Service.Pending) displayMap[pending.FileID] = pending; if (ShowPartials.Checked) foreach (OpTransfer partial in Service.Partials) displayMap[partial.FileID] = partial; // remove var remove = (from TransferNode node in TransferList.Nodes where !displayMap.ContainsKey(node.Transfer.FileID) select node).ToList(); foreach (TransferNode node in remove) { TransferMap.Remove(node.Transfer.FileID); TransferList.Nodes.Remove(node); } // add missing var add = from transfer in displayMap.Values where !TransferMap.ContainsKey(transfer.FileID) select transfer; foreach (OpTransfer transfer in add) { TransferNode node = new TransferNode(Service, transfer); TransferMap[transfer.FileID] = node; TransferList.Nodes.Add(node); if(!DefaultCollapse) node.Expand(); } foreach (TransferNode transfer in TransferList.Nodes) transfer.Refresh(); TransferList.Invalidate(); }
private void RefreshView() { Dictionary <ulong, OpTransfer> displayMap = new Dictionary <ulong, OpTransfer>(); if (ShowDownloads.Checked) { foreach (OpTransfer download in Service.Transfers.Values.Where(t => t.Status != TransferStatus.Complete)) { displayMap[download.FileID] = download; } } if (ShowUploads.Checked) { foreach (OpTransfer upload in Service.Transfers.Values.Where(t => t.Status == TransferStatus.Complete)) { displayMap[upload.FileID] = upload; } } if (ShowPending.Checked) { foreach (OpTransfer pending in Service.Pending) { displayMap[pending.FileID] = pending; } } if (ShowPartials.Checked) { foreach (OpTransfer partial in Service.Partials) { displayMap[partial.FileID] = partial; } } // remove var remove = (from TransferNode node in TransferList.Nodes where !displayMap.ContainsKey(node.Transfer.FileID) select node).ToList(); foreach (TransferNode node in remove) { TransferMap.Remove(node.Transfer.FileID); TransferList.Nodes.Remove(node); } // add missing var add = from transfer in displayMap.Values where !TransferMap.ContainsKey(transfer.FileID) select transfer; foreach (OpTransfer transfer in add) { TransferNode node = new TransferNode(Service, transfer); TransferMap[transfer.FileID] = node; TransferList.Nodes.Add(node); if (!DefaultCollapse) { node.Expand(); } } foreach (TransferNode transfer in TransferList.Nodes) { transfer.Refresh(); } TransferList.Invalidate(); }