From 854088c48c4020f35019851137197b1112a9b9ee Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Fri, 3 Apr 2026 22:57:58 -0700 Subject: [PATCH] io/fileview: convert containers to QVariantList/Map before serialize QJsonValue::fromVariant doesn't do this automatically for some reason. --- changelog/next.md | 1 + src/io/jsonadapter.cpp | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/changelog/next.md b/changelog/next.md index 1137e9a..86687eb 100644 --- a/changelog/next.md +++ b/changelog/next.md @@ -69,6 +69,7 @@ set shell id. - Fixed ScreencopyView pixelation when scaled. - Fixed JsonAdapter crashing and providing bad data on read when using JsonObject. - Fixed JsonAdapter sending unnecessary property changes for primitive values. +- Fixed JsonAdapter serialization for lists. ## Packaging Changes diff --git a/src/io/jsonadapter.cpp b/src/io/jsonadapter.cpp index 9ca7060..df65120 100644 --- a/src/io/jsonadapter.cpp +++ b/src/io/jsonadapter.cpp @@ -1,5 +1,6 @@ #include "jsonadapter.hpp" +#include #include #include #include @@ -14,6 +15,7 @@ #include #include #include +#include #include #include @@ -131,13 +133,16 @@ QJsonObject JsonAdapter::serializeRec(const QObject* obj, const QMetaObject* bas } json.insert(prop.name(), array); - } else if (val.canConvert()) { - auto variant = val.value().toVariant(); - auto jv = QJsonValue::fromVariant(variant); - json.insert(prop.name(), jv); } else { - auto jv = QJsonValue::fromVariant(val); - json.insert(prop.name(), jv); + if (val.canConvert()) val = val.value().toVariant(); + + if (val.canConvert()) { + val.convert(QMetaType::fromType()); + } else if (val.canConvert()) { + val.convert(QMetaType::fromType()); + } + + json.insert(prop.name(), QJsonValue::fromVariant(val)); } } }