private void Window_Loaded(object sender, RoutedEventArgs e) { trayIcon = new System.Windows.Forms.NotifyIcon(); trayIcon.Text = App.appName; trayIcon.Icon = Properties.Resources.favicon; trayIcon.BalloonTipClosed += TrayIcon_BalloonTipClosed; trayIcon.BalloonTipClicked += TrayIcon_BalloonTipClicked; timer.Tick += new EventHandler(Timer_Tick); timer.Interval = new TimeSpan(0, 0, 1); //1 sekunda timer.Start(); settings = settings.Load(); settings.Save(); Lang.SetLanguage(settings.Language); LinksStorage links = new LinksStorage(); links = links.Load(); foreach (Link link in links.List) { DownloadClient item = new DownloadClient(link.Url, link.Directory, link.TotalBytes, link.FileName); item.OnDownloadInit += Client_OnDownloadInit; item.OnDownloadCompleted += Client_OnDownloadCompleted; item.OnDownloadError += Client_OnDownloadError; item.OnDownloadStateChanged += Client_OnDownloadStateChanged; item.SpeedLimit = link.SpeedLimit; item.Refresh(); item.LoadIcon(); listView.Items.Add(item); } }
private void Client_OnDownloadStateChanged(DownloadClient item, States oldState, States newState) { if (newState != States.Error) { item.Refresh(); listView.Items.Refresh(); if (oldState == States.Error) { item.ErrorMsg = null; } } }
private void MenuItemLimit_Click(object sender, RoutedEventArgs e) //Omezit rychlost { DownloadClient item = lastItem; BandwidthWindow bandwidthWindow = new BandwidthWindow(); bandwidthWindow.textBox.Text = (item.SpeedLimit / 1024).ToString(); bandwidthWindow.Owner = this; if (bandwidthWindow.ShowDialog() == true) { item.SpeedLimit = Int64.Parse(bandwidthWindow.textBox.Text) * 1024; item.Refresh(); listView.Items.Refresh(); } }
private void MenuItemRename_Click(object sender, RoutedEventArgs e) //Přejmenovat { DownloadClient item = lastItem; if (item.FileName == "") { return; } RenameWindow renameWindow = new RenameWindow(item); renameWindow.Owner = this; if (renameWindow.ShowDialog() == true) { item.Refresh(); listView.Items.Refresh(); } }
private void buttonAdd_Click(object sender, RoutedEventArgs e) { AddWindow addWindow = new AddWindow(); addWindow.Owner = this; if (addWindow.ShowDialog() == true) { string dir = addWindow.pathTextBox.Text; foreach (string url in addWindow.UrlList) { DownloadClient item = new DownloadClient(url, dir); item.SpeedLimit = settings.SpeedLimit; item.OnDownloadInit += Client_OnDownloadInit; item.OnDownloadCompleted += Client_OnDownloadCompleted; item.OnDownloadError += Client_OnDownloadError; item.OnDownloadStateChanged += Client_OnDownloadStateChanged; if (DownloadClient.ActiveCount < settings.MaxDownloads) { item.Start(); } else { item.Queue(); } item.Refresh(); item.LoadIcon(); listView.Items.Add(item); } //přidáno zpoždění protože z nějakého důvodu ScrollIntoView nefunguje hned po přidání položky Task.Delay(20).ContinueWith(t => { //počká 20ms bez blokování současného vlákna Dispatcher.Invoke(() => { //po 20ms se kód spustí zpět na vlákně rozhraní listView.Focus(); listView.SelectedIndex = listView.Items.Count - 1; listView.ScrollIntoView(listView.SelectedItem); }); }); } }
private void Client_OnDownloadError(DownloadClient item, string message) { item.ErrorMsg = message; item.Refresh(); listView.Items.Refresh(); CheckQueue(); if (settings.ShowNotification) { trayIcon.Visible = true; trayIcon.ShowBalloonTip(10, Lang.Translate("lang_error"), message, System.Windows.Forms.ToolTipIcon.Error); } if (settings.PlaySound) { System.Media.SystemSounds.Hand.Play(); } }