diff options
Diffstat (limited to 'src/dbus/qdbusintegrator.cpp')
-rw-r--r-- | src/dbus/qdbusintegrator.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 5bdd0ee8d8..35b40a16f9 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -2236,14 +2236,17 @@ void QDBusConnectionPrivate::registerObject(const ObjectTreeNode *node) void QDBusConnectionPrivate::connectRelay(const QString &service, const QString &path, const QString &interface, QDBusAbstractInterface *receiver, - const char *signal) + const QMetaMethod &signal) { // this function is called by QDBusAbstractInterface when one of its signals is connected // we set up a relay from D-Bus into it SignalHook hook; QString key; - if (!prepareHook(hook, key, service, path, interface, QString(), QStringList(), receiver, signal, + QByteArray sig; + sig.append(QSIGNAL_CODE + '0'); + sig.append(signal.methodSignature()); + if (!prepareHook(hook, key, service, path, interface, QString(), QStringList(), receiver, sig, QDBusAbstractInterface::staticMetaObject.methodCount(), true)) return; // don't connect @@ -2267,14 +2270,17 @@ void QDBusConnectionPrivate::connectRelay(const QString &service, void QDBusConnectionPrivate::disconnectRelay(const QString &service, const QString &path, const QString &interface, QDBusAbstractInterface *receiver, - const char *signal) + const QMetaMethod &signal) { // this function is called by QDBusAbstractInterface when one of its signals is disconnected // we remove relay from D-Bus into it SignalHook hook; QString key; - if (!prepareHook(hook, key, service, path, interface, QString(), QStringList(), receiver, signal, + QByteArray sig; + sig.append(QSIGNAL_CODE + '0'); + sig.append(signal.methodSignature()); + if (!prepareHook(hook, key, service, path, interface, QString(), QStringList(), receiver, sig, QDBusAbstractInterface::staticMetaObject.methodCount(), true)) return; // don't connect |