diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index 60fd7a2ae2..bbf577363e 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -1994,11 +1994,6 @@ void main_window::CreateConnects() QMessageBox::warning(this, tr("Auto-updater"), tr("The auto-updater currently isn't available for your os.")); return; #endif - if(!Emu.IsStopped()) - { - QMessageBox::warning(this, tr("Auto-updater"), tr("Please stop the emulation before trying to update.")); - return; - } m_updater.check_for_updates(false, false, this); }); diff --git a/rpcs3/rpcs3qt/update_manager.cpp b/rpcs3/rpcs3qt/update_manager.cpp index 4e097cbc33..98a9f60c64 100644 --- a/rpcs3/rpcs3qt/update_manager.cpp +++ b/rpcs3/rpcs3qt/update_manager.cpp @@ -229,6 +229,8 @@ bool update_manager::handle_json(bool automatic, bool check_only, const QByteArr void update_manager::update() { + ensure(m_downloader); + if (m_update_message.isEmpty() || QMessageBox::question(m_downloader->get_progress_dialog(), tr("Update Available"), m_update_message, QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) { @@ -236,6 +238,13 @@ void update_manager::update() return; } + if (!Emu.IsStopped()) + { + m_downloader->close_progress_dialog(); + QMessageBox::warning(m_parent, tr("Auto-updater"), tr("Please stop the emulation before trying to update.")); + return; + } + m_downloader->disconnect(); connect(m_downloader, &downloader::signal_download_error, this, [this](const QString& /*error*/)