diff options
author | David Faure <faure@kde.org> | 2013-05-04 13:03:45 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-01 17:04:23 +0200 |
commit | b2f9839457a7c09c2898befe431443aaeb607edb (patch) | |
tree | 7d8532546d5b5451131200664ee5f215d8da036b /src/dbus/qdbusabstractadaptor.cpp | |
parent | 170469ef84fd7ce7805ff174aed5b3447fa8e7a2 (diff) |
QDBus: improve error handling, to give the developer feedback.
For instance, exporting an object with a slot like
QString complexMethod(const MyVariantMap& vars);
(even with a simple typedef QVariantMap MyVariantMap)
used to silently skip that method in the introspection.
Now it outputs:
generateInterfaceXml: Skipped method "complexMethod" : Invalid type in parameter list: MyVariantMap
Change-Id: I7964cfb63e973257ce1abe47b9625e361b2ad23f
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusabstractadaptor.cpp')
-rw-r--r-- | src/dbus/qdbusabstractadaptor.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/dbus/qdbusabstractadaptor.cpp b/src/dbus/qdbusabstractadaptor.cpp index e08714f04d..1dbc79d6ec 100644 --- a/src/dbus/qdbusabstractadaptor.cpp +++ b/src/dbus/qdbusabstractadaptor.cpp @@ -298,15 +298,18 @@ void QDBusAdaptorConnector::relay(QObject *senderObj, int lastSignalIdx, void ** // break down the parameter list QVector<int> types; - int inputCount = qDBusParametersForMethod(mm, types); - if (inputCount == -1) + QString errorMsg; + int inputCount = qDBusParametersForMethod(mm, types, errorMsg); + if (inputCount == -1) { // invalid signal signature - // qDBusParametersForMethod has already complained + qWarning("QDBusAbstractAdaptor: Cannot relay signal %s::%s: %s", + senderMetaObject->className(), mm.methodSignature().constData(), + qPrintable(errorMsg)); return; + } if (inputCount + 1 != types.count() || types.at(inputCount) == QDBusMetaTypeId::message()) { // invalid signal signature - // qDBusParametersForMethod has not yet complained about this one qWarning("QDBusAbstractAdaptor: Cannot relay signal %s::%s", senderMetaObject->className(), mm.methodSignature().constData()); return; |