summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/platform/unix/qdesktopunixservices.cpp4
-rw-r--r--src/gui/platform/unix/qdesktopunixservices_p.h5
2 files changed, 6 insertions, 3 deletions
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 <qpa/qplatformservices.h>
+
+#include <QtCore/qpointer.h>
#include <QtCore/QString>
#include <QtCore/private/qglobal_p.h>
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<QDBusPendingCallWatcher> m_watcher = nullptr;
#endif
bool m_hasScreenshotPortalWithColorPicking = false;
};