public void Cancel() { if (IsInProgress) { _callback.Cancel(); } PostVersionUpdateEvent(); }
protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback) { if (this.Client.HandleDownloadProgress != null) { var cancelled = downloadItem.IsCanceled; this.Client.HandleDownloadProgress(downloadItem.FullPath, downloadItem.ReceivedBytes, downloadItem.TotalBytes, ref cancelled); if (cancelled && downloadItem.IsCanceled == false) { callback.Cancel(); } } Log.Trace("DownloadHandler.OnDownloadUpdated( browser: {0}, downloadItem: {1} )", browser.Identifier, downloadItem.Id); //base.OnDownloadUpdated( browser, downloadItem, callback ); }
public void Cancel() => _callback.Cancel();
protected override void OnDownloadUpdated(CefBrowser browser, CefDownloadItem downloadItem, CefDownloadItemCallback callback) { ////base.OnDownloadUpdated(browser, downloadItem, callback); //PublicClass.DownloadProgress(browser, callback, downloadItem);// downloadItem.Url.Substring(downloadItem.Url.LastIndexOf("/") + 1, downloadItem.Url.Length - downloadItem.Url.LastIndexOf("/"))); ////if (downloadItem.IsComplete) ////{ //// // MessageBox.Show("下载成功!"); //// //if (browser.IsPopup && !browser.HasDocument) //// //{ //// if (downloadItem.IsComplete) //// browser.GetHost().CloseBrowser(); //// //} ////} CefDownloadItem cefDownloadItem = downloadItem; //long reciv = downloadItem.ReceivedBytes; try { uint ID = downloadItem.Id; int dPercentComplete = downloadItem.PercentComplete; if (cefDownloadItem.IsInProgress) { CefConstHelper.IsDownloading = true; if (MainForm.Instance.DownloadPanel3.Controls.Count > 2) { MainForm.Instance.Invoke(new Action(() => { for (int i = 0; i < MainForm.Instance.faTabStrip1.Items.Count; i++) { if (MainForm.Instance.faTabStrip1.Items[i].Title == CefConstHelper.CefDownloadTitle) { for (int k = 1; i < MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count; k++) { if (k == MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count) { break; } Jdownload mjdownload = ((Jdownload)MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls[k]); if (mjdownload.IsDownloading && ID.ToString() == mjdownload.DownloadID) { mjdownload.pictureBox1.Image = null; mjdownload.label1.Text = dPercentComplete.ToString() + "%"; // sender.FinishedRate.ToString() + "%"; // break; } } break; } } for (int y = 0; y < MainForm.Instance.DownloadPanel3.Controls.Count - 2; y++) { Jdownloading yDown = ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])); if (yDown.DownloadIndex == ID.ToString()) { ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = dPercentComplete.ToString() + "%"; // sender.FinishedRate.ToString() + "%"; if (dPercentComplete < 0) { ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = (cefDownloadItem.ReceivedBytes / 1024000f).ToString("0.00") + "MB"; // sender.FinishedRate.ToString() + "%"; } if (cefDownloadItem.PercentComplete <= 0 && cefDownloadItem.ReceivedBytes == 0 && cefDownloadItem.TotalBytes > 0) { ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = "100%"; } if (((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).CancelDowning) { callback.Cancel();//取消下载 ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.ForeColor = Color.Red; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).label2.Text = "停止"; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[y + 2])).CancelDown.Enabled = false; } } } })); } } //当下载完成时 if (cefDownloadItem.IsComplete) { MainForm.Instance.Invoke(new Action(() => { bool downloadTabOpened = false; for (int i = 0; i < MainForm.Instance.faTabStrip1.Items.Count; i++) { if (MainForm.Instance.faTabStrip1.Items[i].Title == CefConstHelper.CefDownloadTitle) { for (int k = 1; i < MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count - 1; k++) { if (k == MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls.Count) { break; } Jdownload jdownloadR = (Jdownload)(MainForm.Instance.faTabStrip1.Items[i].splic.Panel1.Controls[k]); if (jdownloadR.DownloadID == ID.ToString() && jdownloadR.IsDownloading) { jdownloadR.label1.Text = ""; jdownloadR.label1.Hide(); jdownloadR.ImageBase64str = PublicClass.IamgeToBase64(System.Drawing.Icon.ExtractAssociatedIcon(jdownloadR.FullFilePaths).ToBitmap()); jdownloadR.FileAlreadyDele = false; jdownloadR.IsDownloading = false; jdownloadR.pictureBox1.Image = System.Drawing.Icon.ExtractAssociatedIcon(jdownloadR.FullFilePaths).ToBitmap(); jdownloadR.Invalidate(); mDownloadRecode.Update(jdownloadR); downloadTabOpened = true; } } break; } } if (MainForm.Instance.DownloadPanel3.Visible) { for (int h = 0; h < MainForm.Instance.DownloadPanel3.Controls.Count - 2; h++) { if (((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).DownloadIndex == ID.ToString()) { ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).buttonXP1.ImageDefault = Resources.up1; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).label2.Visible = false; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).pictureBox1.Image = Icon.ExtractAssociatedIcon(((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).FilePaths).ToBitmap();; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).IsDownloaded = true; ((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).Opendownfile.Enabled = true; MainForm.Instance.DownloadPanel3.Invalidate(); if (!downloadTabOpened) //当没有打开下载页面的时候也要更新一部分内容 { string jsonStr = File.ReadAllText(PublicClass.currDirectiory + @"\UserData\mDownloadRecodes"); Jdownload downitem = new Jdownload();// = new FavirteButton(); List <Jdownload> downitemBTs; try { var jobInfoList = JsonConvert.DeserializeObject <List <Jdownload> >(jsonStr); if (jobInfoList.Count > 0) { downitemBTs = jobInfoList; foreach (Jdownload jobInfo in downitemBTs) { if (jobInfo.DownloadID == ID.ToString() && jobInfo.IsDownloading) { jobInfo.ImageBase64str = PublicClass.IamgeToBase64(((Jdownloading)(MainForm.Instance.DownloadPanel3.Controls[h + 2])).pictureBox1.Image); downitem = jobInfo; break; } } mDownloadRecode.Update(downitem); } } catch (Exception e) { MessageBox.Show(e.Message); } } break; } } } })); if (downloadItem.IsComplete) { CefConstHelper.IsDownloading = false; } } } catch (Exception e) { } }