diff --git a/src/gui/platform/unix/qdesktopunixservices.cpp b/src/gui/platform/unix/qdesktopunixservices.cpp index 226bd338a2c..144a33614c2 100644 --- a/src/gui/platform/unix/qdesktopunixservices.cpp +++ b/src/gui/platform/unix/qdesktopunixservices.cpp @@ -393,7 +393,7 @@ QDesktopUnixServices::QDesktopUnixServices() QDBusPendingCall pendingCall = QDBusConnection::sessionBus().asyncCall(message); auto watcher = new QDBusPendingCallWatcher(pendingCall); - m_watcherConnection = + m_watcher = watcher; QObject::connect(watcher, &QDBusPendingCallWatcher::finished, watcher, [this](QDBusPendingCallWatcher *watcher) { watcher->deleteLater(); @@ -408,7 +408,7 @@ QDesktopUnixServices::QDesktopUnixServices() QDesktopUnixServices::~QDesktopUnixServices() { #if QT_CONFIG(dbus) - QObject::disconnect(m_watcherConnection); + delete m_watcher; #endif } diff --git a/src/gui/platform/unix/qdesktopunixservices_p.h b/src/gui/platform/unix/qdesktopunixservices_p.h index f52dc35bbe2..903bd6e6510 100644 --- a/src/gui/platform/unix/qdesktopunixservices_p.h +++ b/src/gui/platform/unix/qdesktopunixservices_p.h @@ -16,11 +16,14 @@ // #include + +#include #include #include QT_BEGIN_NAMESPACE +class QDBusPendingCallWatcher; class QWindow; class Q_GUI_EXPORT QDesktopUnixServices : public QPlatformServices @@ -46,7 +49,7 @@ private: QString m_webBrowser; QString m_documentLauncher; #if QT_CONFIG(dbus) - QMetaObject::Connection m_watcherConnection; + QPointer m_watcher = nullptr; #endif bool m_hasScreenshotPortalWithColorPicking = false; };