diff options
Diffstat (limited to 'qt/qdbusinternalfilters.cpp')
-rw-r--r-- | qt/qdbusinternalfilters.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/qt/qdbusinternalfilters.cpp b/qt/qdbusinternalfilters.cpp index e5a7fc9..7e93840 100644 --- a/qt/qdbusinternalfilters.cpp +++ b/qt/qdbusinternalfilters.cpp @@ -152,9 +152,13 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method .arg(isOutput ? QLatin1String("out") : QLatin1String("in")); } - if (!isScriptable && - !(flags & (QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals))) - continue; + if (!isScriptable) { + // check if this was added by other means + if (isSignal && (flags & QDBusConnection::ExportAllSignals) != QDBusConnection::ExportAllSignals) + continue; + if (!isSignal && (flags & QDBusConnection::ExportAllSlots) != QDBusConnection::ExportAllSlots) + continue; + } if (qDBusCheckAsyncTag(mm.tag())) // add the no-reply annotation @@ -359,7 +363,7 @@ void qDBusPropertySet(const QDBusConnectionPrivate::ObjectTreeNode *node, const } } - if (!value.isValid() && node->flags & QDBusConnection::ExportProperties) { + if (node->flags & QDBusConnection::ExportProperties) { // try the object itself int pidx = node->obj->metaObject()->indexOfProperty(property_name); if (pidx != -1) { |