| From 4dee412aa655e1dc7f9e01869abcab47e0179422 Mon Sep 17 00:00:00 2001 |
| From: Julien Corjon <corjon.j@ecagroup.com> |
| Date: Wed, 22 Jul 2015 09:24:04 +0200 |
| Subject: [PATCH] Fix builds without qml module |
| |
| When we build without qml module we cannot use QJSValue in qmetaobjectpublisher |
| To prevent QJSValue inclusiion I use a preprocessor directive QT_HAVE_QML. This |
| is probably not the best solution but I do not know any other QML directive. |
| |
| Upstream--Status: https://bugreports.qt.io/browse/QTBUG-47360 |
| Signed-off-by: Julien Corjon <corjon.j@ecagroup.com> |
| --- |
| src/webchannel/qmetaobjectpublisher.cpp | 4 ++++ |
| src/webchannel/webchannel.pro | 2 ++ |
| 2 files changed, 6 insertions(+) |
| |
| diff --git a/src/webchannel/qmetaobjectpublisher.cpp b/src/webchannel/qmetaobjectpublisher.cpp |
| index 0cad569..b0e9652 100644 |
| --- a/src/webchannel/qmetaobjectpublisher.cpp |
| +++ b/src/webchannel/qmetaobjectpublisher.cpp |
| @@ -41,7 +41,9 @@ |
| #include <QDebug> |
| #include <QJsonObject> |
| #include <QJsonArray> |
| +#ifdef QT_HAVE_QML |
| #include <QJSValue> |
| +#endif |
| #include <QUuid> |
| |
| QT_BEGIN_NAMESPACE |
| @@ -486,12 +488,14 @@ QJsonValue QMetaObjectPublisher::wrapResult(const QVariant &result, QWebChannelA |
| if (!classInfo.isEmpty()) |
| objectInfo[KEY_DATA] = classInfo; |
| return objectInfo; |
| +#ifdef QT_HAVE_QML |
| } else if (result.canConvert<QJSValue>()) { |
| // Workaround for keeping QJSValues from QVariant. |
| // Calling QJSValue::toVariant() converts JS-objects/arrays to QVariantMap/List |
| // instead of stashing a QJSValue itself into a variant. |
| // TODO: Improve QJSValue-QJsonValue conversion in Qt. |
| return wrapResult(result.value<QJSValue>().toVariant(), transport, parentObjectId); |
| +#endif |
| } else if (result.canConvert<QVariantList>()) { |
| // recurse and potentially wrap contents of the array |
| return wrapList(result.toList(), transport); |
| diff --git a/src/webchannel/webchannel.pro b/src/webchannel/webchannel.pro |
| index eba8123..f476d6f 100644 |
| --- a/src/webchannel/webchannel.pro |
| +++ b/src/webchannel/webchannel.pro |
| @@ -30,6 +30,8 @@ SOURCES += \ |
| qtHaveModule(qml) { |
| QT += qml |
| |
| + QMAKE_CXXFLAGS += "-DQT_HAVE_QML" |
| + |
| SOURCES += \ |
| qqmlwebchannel.cpp \ |
| qqmlwebchannelattached.cpp |
| -- |
| 2.1.0 |
| |