public void UpdateAndShow(IStartItem startItem) { _startItem = startItem; if (!string.IsNullOrEmpty(startItem.Magnet.FileName)) { iconPicture.Image = NativeImageList.TryGetLargeIcon(Path.GetExtension(startItem.Magnet.FileName)); nameLabel.Text = startItem.Magnet.FileName; if (startItem.Magnet.Size != 0) { sizeLabel.Text = Utils.FormatBytes(startItem.Magnet.Size); } else { sizeLabel.Text = null; } } else { iconPicture.Image = null; nameLabel.Text = null; sizeLabel.Text = null; } progressBar.Enabled = true; progressBar.Style = ProgressBarStyle.Marquee; statusLabel.Text = ""; UpdateStartButton(); startButton.Enabled = false; Show(); Activate(); }
public void StartFile(Magnet magnet) { if (!Drive.IsReady) { MessageBox.Show("Не удалось подключить виртуальный диск. Попробуйте перезагрузить компьютер.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { var provider = FsProviders.First(p => p.CanHandle(magnet)); _startItem = provider.StartItem(magnet); if (_statusForm == null) { _statusForm = new FrmStatus(_ao); } if (!_startItem.ReadyToStart) { _statusForm.UpdateAndShow(_startItem); } } catch (Exception x) { MessageBox.Show("Не удается начать загрузку: " + x.Message); } }
public void StartFile(string torrentFilePath) { if (!Drive.IsReady) { MessageBox.Show("Не удалось подключить виртуальный диск. Попробуйте перезагрузить компьютер.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { var torrent = Torrent.Load(torrentFilePath); var torrentProvider = Providers.OfType <TorrentProvider>().First(); _startItem = torrentProvider.StartItem(torrent); if (_statusForm == null) { _statusForm = new FrmStatus(_ao); } if (!_startItem.ReadyToStart) { _statusForm.UpdateAndShow(_startItem); } } catch (Exception x) { MessageBox.Show("Произошла ошибка при попытке запуска торрент файла: " + x.Message); } }
private void timer1_Tick(object sender, EventArgs e) { if (_startItem == null) { return; } startButton.Enabled = _startItem.ReadyToStart; statusLabel.Text = _startItem.StatusMessage; if (float.IsNaN(_startItem.Progress)) { progressBar.Enabled = false; } else if (float.IsPositiveInfinity(_startItem.Progress)) { progressBar.Enabled = true; progressBar.Style = ProgressBarStyle.Marquee; } else { progressBar.Enabled = true; progressBar.Style = ProgressBarStyle.Continuous; progressBar.Value = (int)(100 * _startItem.Progress); } if (nameLabel.Text != _startItem.Magnet.FileName && !string.IsNullOrEmpty(_startItem.Magnet.FileName)) { iconPicture.Image = NativeImageList.TryGetLargeIcon(Path.GetExtension(_startItem.Magnet.FileName)); nameLabel.Text = _startItem.Magnet.FileName; } if (string.IsNullOrEmpty(sizeLabel.Text) && _startItem.Magnet.Size != 0) { sizeLabel.Text = Utils.FormatBytes(_startItem.Magnet.Size); } if (!_startItem.Closed) { _startItem.MainThreadAction(this); } if (_startItem.Closed) { Close(); _startItem = null; } }