summaryrefslogtreecommitdiffstats
path: root/src/gui/platform/unix/qgenericunixservices.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/platform/unix/qgenericunixservices.cpp')
-rw-r--r--src/gui/platform/unix/qgenericunixservices.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/platform/unix/qgenericunixservices.cpp b/src/gui/platform/unix/qgenericunixservices.cpp
index bfd2556b1e6..3aa071b8b26 100644
--- a/src/gui/platform/unix/qgenericunixservices.cpp
+++ b/src/gui/platform/unix/qgenericunixservices.cpp
@@ -385,7 +385,8 @@ QGenericUnixServices::QGenericUnixServices()
QDBusPendingCall pendingCall = QDBusConnection::sessionBus().asyncCall(message);
auto watcher = new QDBusPendingCallWatcher(pendingCall);
- QObject::connect(watcher, &QDBusPendingCallWatcher::finished, watcher,
+ m_watcherConnection =
+ QObject::connect(watcher, &QDBusPendingCallWatcher::finished, watcher,
[this](QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
QDBusPendingReply<QVariant> reply = *watcher;
@@ -396,6 +397,13 @@ QGenericUnixServices::QGenericUnixServices()
#endif
}
+QGenericUnixServices::~QGenericUnixServices()
+{
+#if QT_CONFIG(dbus)
+ QObject::disconnect(m_watcherConnection);
+#endif
+}
+
QPlatformServiceColorPicker *QGenericUnixServices::colorPicker(QWindow *parent)
{
#if QT_CONFIG(dbus)
@@ -534,6 +542,7 @@ bool QGenericUnixServices::openDocument(const QUrl &url)
#else
QGenericUnixServices::QGenericUnixServices() = default;
+QGenericUnixServices::~QGenericUnixServices() = default;
QByteArray QGenericUnixServices::desktopEnvironment() const
{