From 69ba83d565a9469a96b5c9c3fea096725de16dec Mon Sep 17 00:00:00 2001 From: zhouhang95 <765229842@qq.com> Date: Thu, 27 Feb 2025 16:57:43 +0800 Subject: [PATCH 1/3] paramsBase64 --- ui/zenoedit/launch/corelaunch.h | 1 + ui/zenoedit/launch/serialize.cpp | 9 +++++++++ ui/zenoedit/recordmain.cpp | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ui/zenoedit/launch/corelaunch.h b/ui/zenoedit/launch/corelaunch.h index 2c6c41eb7c..d7e11b5ec1 100644 --- a/ui/zenoedit/launch/corelaunch.h +++ b/ui/zenoedit/launch/corelaunch.h @@ -21,6 +21,7 @@ struct LAUNCH_PARAM { QString zsgPath; int projectFps = 24; QString paramPath; + QString paramBase64; }; void launchProgram(IGraphsModel *pModel, LAUNCH_PARAM param); diff --git a/ui/zenoedit/launch/serialize.cpp b/ui/zenoedit/launch/serialize.cpp index 9a5b54ec76..f30a88922d 100644 --- a/ui/zenoedit/launch/serialize.cpp +++ b/ui/zenoedit/launch/serialize.cpp @@ -136,6 +136,15 @@ static void serializeGraph(IGraphsModel* pGraphsModel, const QModelIndex& subgId zeno::log_error("config file is corrupted"); } } + if (!launchParam.paramBase64.isEmpty()) { + QByteArray byteArray = launchParam.paramBase64.toUtf8(); + QByteArray bytes = byteArray.toBase64(); + configDoc.Parse(bytes); + + if (!configDoc.IsObject()) { + zeno::log_error("paramsBase64 is corrupted"); + } + } //scan all the nodes in the subgraph. for (int i = 0; i < pGraphsModel->itemCount(subgIdx); i++) diff --git a/ui/zenoedit/recordmain.cpp b/ui/zenoedit/recordmain.cpp index 29084720ff..96f1ac72f5 100644 --- a/ui/zenoedit/recordmain.cpp +++ b/ui/zenoedit/recordmain.cpp @@ -92,6 +92,7 @@ int record_main(const QCoreApplication& app) {"subzsg", "subgraphzsg", "subgraph zsg file path", ""}, {"cacheautorm", "cacheautoremove", "remove cache after render"}, {"paramsPath", "paramsPath", "paramsPath"}, + {"paramsBase64", "paramsBase64", "paramsBase64"}, {"paramsJson", "paramsJson", "paramsJson"}, }); cmdParser.process(app); @@ -154,6 +155,10 @@ int record_main(const QCoreApplication& app) { launchparam.paramPath = cmdParser.value("paramsPath"); } + if (cmdParser.isSet("paramsBase64")) + { + launchparam.paramBase64 = cmdParser.value("paramsBase64"); + } if (cmdParser.isSet("exitWhenRecordFinish")) param.exitWhenRecordFinish = cmdParser.value("exitWhenRecordFinish").toLower() == "true"; if (cmdParser.isSet("audio")) { From 2c7a1729fc89f2dad462740008c813454bdf1d46 Mon Sep 17 00:00:00 2001 From: zhouhang95 <765229842@qq.com> Date: Thu, 27 Feb 2025 18:26:17 +0800 Subject: [PATCH 2/3] fix --- ui/zenoedit/launch/serialize.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ui/zenoedit/launch/serialize.cpp b/ui/zenoedit/launch/serialize.cpp index f30a88922d..81d9a44bea 100644 --- a/ui/zenoedit/launch/serialize.cpp +++ b/ui/zenoedit/launch/serialize.cpp @@ -137,9 +137,12 @@ static void serializeGraph(IGraphsModel* pGraphsModel, const QModelIndex& subgId } } if (!launchParam.paramBase64.isEmpty()) { - QByteArray byteArray = launchParam.paramBase64.toUtf8(); - QByteArray bytes = byteArray.toBase64(); - configDoc.Parse(bytes); + zeno::log_info("base64:{}", launchParam.paramBase64.toStdString()); + QByteArray base64Encoded = launchParam.paramBase64.toUtf8(); + QByteArray decodedByteArray = QByteArray::fromBase64(base64Encoded); + QString decodedString = QString::fromUtf8(decodedByteArray ); + zeno::log_info("json: {}", decodedString.toStdString()); + configDoc.Parse(decodedByteArray ); if (!configDoc.IsObject()) { zeno::log_error("paramsBase64 is corrupted"); From d490b2c3bbb1349a5524651179b177ef9e783cca Mon Sep 17 00:00:00 2001 From: zhouhang95 <765229842@qq.com> Date: Thu, 27 Feb 2025 18:30:49 +0800 Subject: [PATCH 3/3] fix --- ui/zenoedit/launch/serialize.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/zenoedit/launch/serialize.cpp b/ui/zenoedit/launch/serialize.cpp index 81d9a44bea..d6be65b65e 100644 --- a/ui/zenoedit/launch/serialize.cpp +++ b/ui/zenoedit/launch/serialize.cpp @@ -314,7 +314,7 @@ static void serializeGraph(IGraphsModel* pGraphsModel, const QModelIndex& subgId const QString& objPath = inSockIdx.data(ROLE_OBJPATH).toString(); if (commandParams.contains(objPath)) { - if (!launchParam.paramPath.isEmpty()) + if (!launchParam.paramPath.isEmpty() || !launchParam.paramBase64.isEmpty()) { const QString& command = commandParams[objPath].name; if (configDoc.HasMember(command.toUtf8()))