From ae4103a722b991c08932ca2df279d52f8eb56c42 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 29 Jan 2021 11:31:51 +0100 Subject: Fix variant conversion after change in qtbase A change to make QByteArray and QString iterable sequences, changed the result of QVariant::canConvert to true. Change-Id: If4c335a60fde88cd8e921314f481f41188a3d9f2 Reviewed-by: Fabian Kosmale --- src/webchannel/qmetaobjectpublisher.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp index e5be207..2bc9c3e 100644 --- a/src/webchannel/qmetaobjectpublisher.cpp +++ b/src/webchannel/qmetaobjectpublisher.cpp @@ -831,6 +831,9 @@ QJsonValue QMetaObjectPublisher::wrapResult(const QVariant &result, QWebChannelA // TODO: Improve QJSValue-QJsonValue conversion in Qt. return wrapResult(result.value().toVariant(), transport, parentObjectId); #endif + } else if (result.metaType().id() == QMetaType::QString || + result.metaType().id() == QMetaType::QByteArray) { + // avoid conversion to QVariantList } else if (result.canConvert()) { // recurse and potentially wrap contents of the array // *don't* use result.toList() as that *only* works for QVariantList and QStringList! -- cgit v1.2.1