From 6ce962b4c5d35df7179bba2c120e88226a5aad31 Mon Sep 17 00:00:00 2001 From: ArgonarioD Date: Thu, 16 Mar 2023 15:30:20 +0800 Subject: [PATCH] =?UTF-8?q?[style]=20=E5=B0=86MaterialStyle=E7=9A=84?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=96=B9=E5=BC=8F=E6=94=B9=E4=B8=BA=E4=BA=86?= =?UTF-8?q?Base64=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ArchitectureColoredPainting.vcxproj | 1 + ...rchitectureColoredPainting.vcxproj.filters | 3 +++ .../src/Editor/LayerStyle.cpp | 6 ++--- .../src/Editor/util/EncodeUtil.hpp | 25 +++++++++++++++++++ 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 ArchitectureColoredPainting/src/Editor/util/EncodeUtil.hpp diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj index 91c9f62..6b49ff0 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj @@ -197,6 +197,7 @@ + diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters index 71f1e04..e047cce 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters @@ -480,6 +480,9 @@ Header Files\Editor\util + + Header Files + diff --git a/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp b/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp index 9b65355..02e3b73 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp @@ -1,6 +1,6 @@ #include "LayerStyle.h" #include "./EditorWidgetComponent/StrokeStyleWidget.h" -#include "./util/JsonUtil.hpp" +#include "./util/EncodeUtil.hpp" #include #include #include @@ -124,8 +124,8 @@ QJsonObject StrokeElementLayerStyle::toJson() const QJsonObject json; json.insert("type", "stroke"); json.insert("enableEachSideIndependent", enableEachSideIndependent); - json.insert("left", JsonUtil::toQJsonArray(strokePair.first->encoded())); - json.insert("right", JsonUtil::toQJsonArray(strokePair.second->encoded())); + json.insert("left", EncodeUtil::toBase64(strokePair.first->encoded())); + json.insert("right", EncodeUtil::toBase64(strokePair.second->encoded())); return json; } diff --git a/ArchitectureColoredPainting/src/Editor/util/EncodeUtil.hpp b/ArchitectureColoredPainting/src/Editor/util/EncodeUtil.hpp new file mode 100644 index 0000000..9ae0957 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/util/EncodeUtil.hpp @@ -0,0 +1,25 @@ +#pragma once +#include + +namespace EncodeUtil +{ +#include + template + QString toBase64(const std::vector& vec) + { + QByteArray ba; + ba.resize(vec.size() * sizeof(S)); + memcpy_s(ba.data(), ba.size(), vec.data(), vec.size()); + return ba.toBase64(); + } + + template + std::vector fromBase64(const QString& str) + { + QByteArray ba = QByteArray::fromBase64(str.toUtf8()); + std::vector vec; + vec.resize(ba.size() / sizeof(T)); + memcpy_s(vec.data(), vec.size() * sizeof(T), ba.data(), ba.size()); + return vec; + } +}