io/fileview: try to convert values to json before handling sequences

The previous code was interpreting a string as a list of characters
and therefore a sequence.
This commit is contained in:
outfoxxed 2026-04-04 12:28:40 -07:00
parent 854088c48c
commit 9b98d10178
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E

View file

@ -136,13 +136,19 @@ QJsonObject JsonAdapter::serializeRec(const QObject* obj, const QMetaObject* bas
} else {
if (val.canConvert<QJSValue>()) val = val.value<QJSValue>().toVariant();
auto jsonVal = QJsonValue::fromVariant(val);
if (jsonVal.isNull() && !val.isNull() && val.isValid()) {
if (val.canConvert<QAssociativeIterable>()) {
val.convert(QMetaType::fromType<QVariantMap>());
} else if (val.canConvert<QSequentialIterable>()) {
val.convert(QMetaType::fromType<QVariantList>());
}
json.insert(prop.name(), QJsonValue::fromVariant(val));
jsonVal = QJsonValue::fromVariant(val);
}
json.insert(prop.name(), jsonVal);
}
}
}