summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/dbus/qdbusabstractinterface.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/dbus/qdbusabstractinterface.cpp b/src/dbus/qdbusabstractinterface.cpp
index c90173db76..9f2e688ebb 100644
--- a/src/dbus/qdbusabstractinterface.cpp
+++ b/src/dbus/qdbusabstractinterface.cpp
@@ -121,11 +121,6 @@ QDBusAbstractInterfacePrivate::QDBusAbstractInterfacePrivate(const QString &serv
if (!connection.isConnected()) {
lastError = QDBusError(QDBusError::Disconnected,
QDBusUtil::disconnectedErrorMessage());
- } else if (!service.isEmpty()) {
- currentOwner = connectionPrivate()->getNameOwner(service); // verify the name owner
- if (currentOwner.isEmpty()) {
- lastError = connectionPrivate()->lastError;
- }
}
}
@@ -133,9 +128,14 @@ void QDBusAbstractInterfacePrivate::initOwnerTracking()
{
if (!isValid || !connection.isConnected() || !connectionPrivate()->shouldWatchService(service))
return;
+
QObject::connect(new QDBusServiceWatcher(service, connection, QDBusServiceWatcher::WatchForOwnerChange, q_func()),
SIGNAL(serviceOwnerChanged(QString,QString,QString)),
q_func(), SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
+
+ currentOwner = connectionPrivate()->getNameOwner(service);
+ if (currentOwner.isEmpty())
+ lastError = connectionPrivate()->lastError;
}
bool QDBusAbstractInterfacePrivate::canMakeCalls() const