Пример #1
0
        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();
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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;
            }
        }