FIX: fix crash when close downloadingProgressDialog

Change-Id: Ie35bb83223d70d3d343f795bc449998a4df15500
This commit is contained in:
Stone Li 2022-08-19 14:26:44 +08:00 committed by Lane.Wei
parent 0e6f857819
commit edacd17fab
2 changed files with 13 additions and 1 deletions

View File

@ -51,6 +51,8 @@ DownloadProgressDialog::DownloadProgressDialog(wxString title)
Layout();
Fit();
CentreOnParent();
Bind(wxEVT_CLOSE_WINDOW, &DownloadProgressDialog::on_close, this);
}
bool DownloadProgressDialog::Show(bool show)
@ -91,6 +93,15 @@ bool DownloadProgressDialog::Show(bool show)
return DPIDialog::Show(show);
}
void DownloadProgressDialog::on_close(wxCloseEvent& event)
{
if (m_upgrade_job) {
m_upgrade_job->cancel();
m_upgrade_job->join();
}
event.Skip();
}
DownloadProgressDialog::~DownloadProgressDialog() {}
void DownloadProgressDialog::on_dpi_changed(const wxRect &suggested_rect) {}

View File

@ -33,6 +33,7 @@ class DownloadProgressDialog : public DPIDialog
{
protected:
bool Show(bool show) override;
void on_close(wxCloseEvent& event);
public:
DownloadProgressDialog(wxString title);
@ -42,7 +43,7 @@ public:
void update_release_note(std::string release_note, std::string version);
std::shared_ptr<BBLStatusBarSend> m_status_bar;
std::shared_ptr<UpgradeNetworkJob> m_upgrade_job;
std::shared_ptr<UpgradeNetworkJob> m_upgrade_job { nullptr };
wxPanel * m_panel_download;