diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-04-22 15:05:56 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-01 01:18:03 +0200 |
commit | a08e0fca276341396d92c63dd4a417cb482de82d (patch) | |
tree | e5ac78a65f581ded19d4310f80adfd6287d3f55d /src/dbus/qdbusconnectioninterface.cpp | |
parent | e525957253de61b9f2f7066e222fa8f06a6afacc (diff) |
Port QtDBus to QMetaMethod-based connectNotify()
The const char *-based API is deprecated and will be removed in Qt5.
Change-Id: I1c7f0e46149964367f42faccfff4b89acbf16511
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusconnectioninterface.cpp')
-rw-r--r-- | src/dbus/qdbusconnectioninterface.cpp | 49 |
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 |