From be5b982e45f51e3386ade97ccf9794a11ed2d32e Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sat, 9 Mar 2024 14:31:36 +0100 Subject: [PATCH] Qt: don't close the progress dialog if it is already being closed anyway Maybe this fixes some strange crashes that appear for some people. --- rpcs3/rpcs3qt/downloader.cpp | 7 +++++-- rpcs3/rpcs3qt/downloader.h | 4 +--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/rpcs3/rpcs3qt/downloader.cpp b/rpcs3/rpcs3qt/downloader.cpp index 5180a532e2..7cae238d0d 100644 --- a/rpcs3/rpcs3qt/downloader.cpp +++ b/rpcs3/rpcs3qt/downloader.cpp @@ -122,10 +122,13 @@ void downloader::start(const std::string& url, bool follow_location, bool show_p connect(m_progress_dialog, &QProgressDialog::canceled, this, [this]() { m_curl_abort = true; - close_progress_dialog(); + m_progress_dialog = nullptr; // The progress dialog deletes itself on close Q_EMIT signal_download_canceled(); }); - connect(m_progress_dialog, &QProgressDialog::finished, this, &downloader::close_progress_dialog); + connect(m_progress_dialog, &QProgressDialog::finished, this, [this]() + { + m_progress_dialog = nullptr; // The progress dialog deletes itself on close + }); } } diff --git a/rpcs3/rpcs3qt/downloader.h b/rpcs3/rpcs3qt/downloader.h index 2975c6a76e..5a2a44fabe 100644 --- a/rpcs3/rpcs3qt/downloader.h +++ b/rpcs3/rpcs3qt/downloader.h @@ -25,12 +25,10 @@ public: usz update_buffer(char* data, usz size); void update_progress_dialog(const QString& title) const; + void close_progress_dialog(); progress_dialog* get_progress_dialog() const; -public Q_SLOTS: - void close_progress_dialog(); - private Q_SLOTS: void handle_buffer_update(int size, int max) const;