diff options
author | Thiago Macieira <thiago.macieira@trolltech.com> | 2006-06-12 09:18:45 +0000 |
---|---|---|
committer | John Palmieri <johnp@remedyz.boston.redhat.com> | 2006-06-28 08:15:18 -0400 |
commit | 75c10969699acd47eb048b3e24c42b458de52106 (patch) | |
tree | 05997e173d6bf68ae2b56774beb2148351d9194a | |
parent | e2e6d408faccc0d7c2ee73a570ffe9a1ddb07607 (diff) |
* qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods that took a QDBusMessage parameter. * qt/src/qdbusbus.h: Add a default flag for RequestName. * qt/tools/dbus.cpp: Don't use automatic call because we might be calling an async method: request a reply.
-rw-r--r-- | qt/src/qdbusbus.h | 3 | ||||
-rw-r--r-- | qt/src/qdbusintegrator.cpp | 2 | ||||
-rw-r--r-- | qt/tools/dbus.cpp | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/qt/src/qdbusbus.h b/qt/src/qdbusbus.h index 1f69579..0240e65 100644 --- a/qt/src/qdbusbus.h +++ b/qt/src/qdbusbus.h @@ -58,6 +58,7 @@ public: // taken out of http://dbus.freedesktop.org/doc/dbus-specification.html // update if the standard updates enum RequestNameOption { + QueueName = 0x0, AllowReplacingName = 0x1, ReplaceExistingName = 0x2, DoNotQueueName = 0x4 @@ -127,7 +128,7 @@ public Q_SLOTS: { return GetNameOwner(name); } QDBusReply<ReleaseNameReply> releaseName(const QString &serviceName) { return ReleaseName(serviceName); } - QDBusReply<RequestNameReply> requestName(const QString &serviceName, RequestNameOptions flags) + QDBusReply<RequestNameReply> requestName(const QString &serviceName, RequestNameOptions flags = QueueName) { return RequestName(serviceName, flags); } QDBusReply<QStringList> listQueuedOwners(const QString &serviceName) { return ListQueuedOwners(serviceName); } diff --git a/qt/src/qdbusintegrator.cpp b/qt/src/qdbusintegrator.cpp index de012c1..509e110 100644 --- a/qt/src/qdbusintegrator.cpp +++ b/qt/src/qdbusintegrator.cpp @@ -413,7 +413,7 @@ static int findSlot(const QMetaObject *mo, const QByteArray &name, int flags, continue; // we didn't match them all // consistency check: - if (isAsync && metaTypes.count() > i + 1) + if (isAsync && metaTypes.count() > i + 1 + (hasMessage ? 1 : 0)) continue; if (hasMessage && (mm.attributes() & attributeMask) != attributeMask) diff --git a/qt/tools/dbus.cpp b/qt/tools/dbus.cpp index b2556ef..f628db9 100644 --- a/qt/tools/dbus.cpp +++ b/qt/tools/dbus.cpp @@ -237,7 +237,7 @@ void placeCall(const QString &service, const QString &path, const QString &inter exit(1); } - QDBusMessage reply = iface->callWithArgs(member, params); + QDBusMessage reply = iface->callWithArgs(member, params, QDBusInterface::NoUseEventLoop); if (reply.type() == QDBusMessage::ErrorMessage) { QDBusError err = reply; printf("Error: %s\n%s\n", qPrintable(err.name()), qPrintable(err.message())); |