Debugger: Fix value assignment in locals and expressions

For booleans and numbers.

Change-Id: I5ff1660faee1bf0ed21211d5fe98462f660fb417
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2022-02-08 07:52:47 +01:00
parent 80dee0fd32
commit f308bb3cae

View File

@@ -795,9 +795,15 @@ void QmlEngine::assignValueInDebugger(WatchItem *item,
const QString &expression, const QVariant &editValue)
{
if (!expression.isEmpty()) {
QVariant value = (editValue.type() == QVariant::String)
? QVariant('"' + editValue.toString().replace('"', "\\\"") + '"')
: editValue;
QTC_CHECK(editValue.type() == QVariant::String);
QVariant value;
QString val = editValue.toString();
if (item->type == "boolean")
value = val != "false" && val != "0";
else if (item->type == "number")
value = val.toDouble();
else
value = QString('"' + val.replace('"', "\\\"") + '"');
if (item->isInspect()) {
d->inspectorAgent.assignValue(item, expression, value);