diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index b5e8fde5b96..92a9f746cf2 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -870,9 +870,13 @@ bool QmlEngine::canHandleToolTip(const DebuggerToolTipContext &) const } void QmlEngine::assignValueInDebugger(WatchItem *item, - const QString &expression, const QVariant &value) + const QString &expression, const QVariant &editValue) { if (!expression.isEmpty()) { + QVariant value = (editValue.type() == QVariant::String) + ? QVariant('"' + editValue.toString().replace('"', "\\\"") + '"') + : editValue; + if (item->isInspect()) { d->inspectorAgent.assignValue(item, expression, value); } else { diff --git a/src/plugins/debugger/qml/qmlinspectoragent.cpp b/src/plugins/debugger/qml/qmlinspectoragent.cpp index a765746c826..f273529f69a 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.cpp +++ b/src/plugins/debugger/qml/qmlinspectoragent.cpp @@ -176,10 +176,6 @@ void QmlInspectorAgent::assignValue(const WatchItem *data, if (data->id != WatchItem::InvalidId) { QString val(valueV.toString()); - if (valueV.type() == QVariant::String) { - val = val.replace(QLatin1Char('\"'), QLatin1String("\\\"")); - val = QLatin1Char('\"') + val + QLatin1Char('\"'); - } QString expression = QString("%1 = %2;").arg(expr).arg(val); queryExpressionResult(data->id, expression); } diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index 453d6562d6e..7c1e727d052 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -94,7 +94,7 @@ bool isIntType(const QString &type) bool isFloatType(const QString &type) { - return type == "float" || type == "double" || type == "qreal"; + return type == "float" || type == "double" || type == "qreal" || type == "number"; } bool isIntOrFloatType(const QString &type)