summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusconnectioninterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbus/qdbusconnectioninterface.cpp')
-rw-r--r--src/dbus/qdbusconnectioninterface.cpp49
1 files changed, 31 insertions, 18 deletions
diff --git a/src/dbus/qdbusconnectioninterface.cpp b/src/dbus/qdbusconnectioninterface.cpp
index 0f85f9090e..1b7b69933e 100644
--- a/src/dbus/qdbusconnectioninterface.cpp
+++ b/src/dbus/qdbusconnectioninterface.cpp
@@ -44,6 +44,7 @@
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
+#include <QtCore/QMetaMethod>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
@@ -328,41 +329,53 @@ QDBusConnectionInterface::unregisterService(const QString &serviceName)
/*!
\internal
*/
-void QDBusConnectionInterface::connectNotify(const char *signalName)
+void QDBusConnectionInterface::connectNotify(const QMetaMethod &signal)
{
// translate the signal names to what we really want
// this avoids setting hooks for signals that don't exist on the bus
- if (qstrcmp(signalName, SIGNAL(serviceRegistered(QString))) == 0)
- QDBusAbstractInterface::connectNotify(SIGNAL(NameAcquired(QString)));
-
- else if (qstrcmp(signalName, SIGNAL(serviceUnregistered(QString))) == 0)
- QDBusAbstractInterface::connectNotify(SIGNAL(NameLost(QString)));
-
- else if (qstrcmp(signalName, SIGNAL(serviceOwnerChanged(QString,QString,QString))) == 0) {
+ static const QMetaMethod serviceRegisteredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceRegistered);
+ static const QMetaMethod serviceUnregisteredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceUnregistered);
+ static const QMetaMethod serviceOwnerChangedSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceOwnerChanged);
+ static const QMetaMethod NameAcquiredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameAcquired);
+ static const QMetaMethod NameLostSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameLost);
+ static const QMetaMethod NameOwnerChangedSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameOwnerChanged);
+ if (signal == serviceRegisteredSignal)
+ QDBusAbstractInterface::connectNotify(NameAcquiredSignal);
+
+ else if (signal == serviceUnregisteredSignal)
+ QDBusAbstractInterface::connectNotify(NameLostSignal);
+
+ else if (signal == serviceOwnerChangedSignal) {
static bool warningPrinted = false;
if (!warningPrinted) {
qWarning("Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)");
warningPrinted = true;
}
- QDBusAbstractInterface::connectNotify(SIGNAL(NameOwnerChanged(QString,QString,QString)));
+ QDBusAbstractInterface::connectNotify(NameOwnerChangedSignal);
}
}
/*!
\internal
*/
-void QDBusConnectionInterface::disconnectNotify(const char *signalName)
+void QDBusConnectionInterface::disconnectNotify(const QMetaMethod &signal)
{
// translate the signal names to what we really want
// this avoids setting hooks for signals that don't exist on the bus
- if (qstrcmp(signalName, SIGNAL(serviceRegistered(QString))) == 0)
- QDBusAbstractInterface::disconnectNotify(SIGNAL(NameAcquired(QString)));
-
- else if (qstrcmp(signalName, SIGNAL(serviceUnregistered(QString))) == 0)
- QDBusAbstractInterface::disconnectNotify(SIGNAL(NameLost(QString)));
-
- else if (qstrcmp(signalName, SIGNAL(serviceOwnerChanged(QString,QString,QString))) == 0)
- QDBusAbstractInterface::disconnectNotify(SIGNAL(NameOwnerChanged(QString,QString,QString)));
+ static const QMetaMethod serviceRegisteredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceRegistered);
+ static const QMetaMethod serviceUnregisteredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceUnregistered);
+ static const QMetaMethod serviceOwnerChangedSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::serviceOwnerChanged);
+ static const QMetaMethod NameAcquiredSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameAcquired);
+ static const QMetaMethod NameLostSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameLost);
+ static const QMetaMethod NameOwnerChangedSignal = QMetaMethod::fromSignal(&QDBusConnectionInterface::NameOwnerChanged);
+ if (signal == serviceRegisteredSignal)
+ QDBusAbstractInterface::disconnectNotify(NameAcquiredSignal);
+
+ else if (signal == serviceUnregisteredSignal)
+ QDBusAbstractInterface::disconnectNotify(NameLostSignal);
+
+ else if (signal == serviceOwnerChangedSignal)
+ QDBusAbstractInterface::disconnectNotify(NameOwnerChangedSignal);
}
// signals