Exemplo n.º 1
0
 public void Cancel()
 {
     if (IsInProgress)
     {
         _callback.Cancel();
     }
     PostVersionUpdateEvent();
 }
Exemplo n.º 2
0
        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 );
        }
Exemplo n.º 3
0
 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)
            { }
        }