]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
* qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
authorThiago Macieira <thiago@kde.org>
Mon, 12 Jun 2006 09:18:45 +0000 (09:18 +0000)
committerThiago Macieira <thiago@kde.org>
Mon, 12 Jun 2006 09:18:45 +0000 (09:18 +0000)
        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.

ChangeLog
qt/src/qdbusbus.h
qt/src/qdbusintegrator.cpp
qt/tools/dbus.cpp

index 8f48ca5ca3e3ec38495ee8bba2694a90f9ff186c..6a8eeff136b9cde70d48602543edf42567652027 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
+
+       * 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.
+
 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
 
        * test/qt/*: Update the testcases, including testing the new
index 1f69579896407f21b67530fe201a33483abfa823..0240e65fa7204c40522bbe40fcb1f06895ce4f45 100644 (file)
@@ -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); }
index de012c199fc1c3842a531b21c063dc70fa87795e..509e110fec6e70dcceef7627191e496c67139eea 100644 (file)
@@ -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)
index b2556ef8ff84b966b69a2efc2db9419faa6ebb3d..f628db9535c23a2399baadb9a02e4c06aafb3633 100644 (file)
@@ -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()));