Prevent tray menu from being accessed after destruction

PR #17400.
This commit is contained in:
Vladimir Golovnev 2022-07-21 09:30:05 +03:00 committed by GitHub
parent 71e53a4628
commit 5b269a782a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 5 deletions

View file

@ -50,6 +50,7 @@
#include <QProcess>
#ifndef DISABLE_GUI
#include <QMenu>
#include <QMessageBox>
#include <QPixmapCache>
#ifdef Q_OS_WIN
@ -973,6 +974,14 @@ void Application::cleanup()
LogMsg(tr("qBittorrent termination initiated"));
#ifndef DISABLE_GUI
if (m_desktopIntegration)
{
m_desktopIntegration->disconnect();
m_desktopIntegration->setToolTip(tr("qBittorrent is shutting down..."));
if (m_desktopIntegration->menu())
m_desktopIntegration->menu()->setEnabled(false);
}
if (m_window)
{
// Hide the window and don't leave it on screen as

View file

@ -481,6 +481,7 @@ MainWindow::MainWindow(IGUIApplication *app, QWidget *parent)
MainWindow::~MainWindow()
{
app()->desktopIntegration()->setMenu(nullptr);
delete m_ui;
}
@ -1171,11 +1172,6 @@ void MainWindow::closeEvent(QCloseEvent *e)
}
}
// Disable some UI to prevent user interactions
app()->desktopIntegration()->disconnect();
app()->desktopIntegration()->setToolTip(tr("qBittorrent is shutting down..."));
app()->desktopIntegration()->menu()->setEnabled(false);
// Accept exit
e->accept();
qApp->exit();