/// <summary> /// Downloads the specified link. /// </summary> /// <param name="link">The link.</param> /// <param name="token">The token.</param> public void Download(Link link, string token) { if (link.FileURL.StartsWith("magnet:")) { DownloadFileCompleted(null, new EventArgs<string, string, string>(link.FileURL, null, token)); return; } _td = new TaskDialog { Title = "Downloading...", Instruction = link.Release, Content = "Sending request to " + new Uri(link.FileURL).DnsSafeHost.Replace("www.", string.Empty) + "...", CommonButtons = TaskDialogButton.Cancel, ShowProgressBar = true }; _td.SetMarqueeProgressBar(true); _td.Destroyed += TaskDialogDestroyed; _td.ButtonClick += TaskDialogDestroyed; new Thread(() => _res = _td.Show().CommonButton).Start(); var prm = true; _dl = link.Source.Downloader; _dl.DownloadFileCompleted += DownloadFileCompleted; _dl.DownloadProgressChanged += (s, a) => { if (_td != null && _td.IsShowing) { if (prm) { _td.SetMarqueeProgressBar(false); _td.Navigate(_td); prm = false; } _td.Content = "Downloading file... ({0}%)".FormatWith(a.Data); _td.ProgressBarPosition = a.Data; } }; _dl.Download(link, Utils.GetRandomFileName(link.Source.Type == Types.Torrent ? "torrent" : link.Source.Type == Types.Usenet ? "nzb" : null), !string.IsNullOrWhiteSpace(token) ? token : "DownloadFile"); Utils.Win7Taskbar(state: TaskbarProgressBarState.Indeterminate); }
/// <summary> /// Downloads the specified link. /// </summary> /// <param name="link">The link.</param> public void Download(Subtitle link) { _td = new TaskDialog { Title = "Downloading...", Instruction = link.Release, Content = "Sending request to " + new Uri(link.FileURL ?? link.InfoURL).DnsSafeHost.Replace("www.", string.Empty) + "...", CommonButtons = TaskDialogButton.Cancel, ShowProgressBar = true }; _td.SetMarqueeProgressBar(true); _td.Destroyed += TaskDialogDestroyed; _td.ButtonClick += TaskDialogDestroyed; new Thread(() => _res = _td.Show().CommonButton).Start(); var prm = true; _dl = link.Source.Downloader; _dl.DownloadFileCompleted += DownloadFileCompleted; _dl.DownloadProgressChanged += (s, a) => { if (_td != null && _td.IsShowing) { if (prm) { _td.SetMarqueeProgressBar(false); _td.Navigate(_td); prm = false; } _td.Content = "Downloading file... ({0}%)".FormatWith(a.Data); _td.ProgressBarPosition = a.Data; } }; _dl.Download(link, Utils.GetRandomFileName()); Utils.Win7Taskbar(state: TaskbarProgressBarState.Indeterminate); }
void dlg_ButtonClick(object sender, ClickEventArgs e) { if (e.ButtonID == 9) { e.PreventClosing = true; VistaControls.TaskDialog.TaskDialog newDlg = new TaskDialog("Uploading...", "Upload"); newDlg.ShowProgressBar = true; newDlg.EnableCallbackTimer = true; newDlg.ProgressBarMaxRange = 90; newDlg.CustomButtons = new CustomButton[] { new CustomButton(Result.Cancel, "Abort transfer") }; newDlg.Footer = "Elapsed time: 0s."; newDlg.FooterCommonIcon = TaskDialogIcon.Information; VistaControls.TaskDialog.TaskDialog dlg = (VistaControls.TaskDialog.TaskDialog)sender; dlg.Navigate(newDlg); tickHandler = new EventHandler <TimerEventArgs>(dlg_Tick); dlg.Tick += tickHandler; } }
void dlg_Tick(object sender, TimerEventArgs e) { VistaControls.TaskDialog.TaskDialog dlg = (VistaControls.TaskDialog.TaskDialog)sender; cTicks += (int)e.Ticks; dlg.Footer = "Elapsed time: " + cTicks / 1000 + "s."; if (dlg.ProgressBarState == VistaControls.ProgressBar.States.Normal) { dlg.ProgressBarPosition += (int)e.Ticks / 100; e.ResetCount = true; } if (dlg.ProgressBarPosition >= 90) { VistaControls.TaskDialog.TaskDialog newDlg = new TaskDialog("Upload complete.", "Upload", "Thank you!"); newDlg.CustomButtons = new CustomButton[] { new CustomButton(Result.Cancel, "Close") }; dlg.Navigate(newDlg); dlg.Tick -= tickHandler; } }