From 94b16ac536329963ed462d3c394bf94208479d31 Mon Sep 17 00:00:00 2001 From: ArgonarioD Date: Fri, 10 Mar 2023 16:07:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86LayerStyle=E7=9A=84m?= =?UTF-8?q?aterialStyles=E7=9A=84=E7=B1=BB=E5=9E=8B=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E6=B7=B1=E6=8B=B7=E8=B4=9D=E6=9E=84=E9=80=A0?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Editor/LayerStyle.cpp | 20 ++++++++++++++++++- .../src/Editor/LayerStyle.h | 6 ++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp b/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp index d8bd001..bd992d0 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerStyle.cpp @@ -45,6 +45,15 @@ QWidget* StrokeElementLayerStyle::getListDisplayWidget() const return w; } +StrokeElementLayerStyle::StrokeElementLayerStyle(StrokeElementLayerStyle& other) +{ + materialStyles = std::vector>(other.materialStyles.size()); + for (size_t i = 0; i < other.materialStyles.size(); i++) + { + materialStyles[i] = std::make_shared(*other.materialStyles[i]); + } +} + std::vector FillElementLayerStyle::toBaseStyles() const { return std::vector(); @@ -72,4 +81,13 @@ QWidget* FillElementLayerStyle::getListDisplayWidget() const layout->setMargin(0); layout->addWidget(name); return w; -} \ No newline at end of file +} + +FillElementLayerStyle::FillElementLayerStyle(FillElementLayerStyle& other) +{ + materialStyles = std::vector>(other.materialStyles.size()); + for (size_t i = 0; i < other.materialStyles.size(); i++) + { + materialStyles[i] = std::make_shared(*other.materialStyles[i]); + } +} diff --git a/ArchitectureColoredPainting/src/Editor/LayerStyle.h b/ArchitectureColoredPainting/src/Editor/LayerStyle.h index 1d3730b..ca2b66e 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerStyle.h +++ b/ArchitectureColoredPainting/src/Editor/LayerStyle.h @@ -34,8 +34,9 @@ public: QWidget* getInputWidget() const override; QWidget* getListDisplayWidget() const override; StrokeElementLayerStyle() = default; + StrokeElementLayerStyle(StrokeElementLayerStyle& other); ~StrokeElementLayerStyle() = default; - std::vector> materialStyles; + std::vector> materialStyles; }; class FillElementLayerStyle : public Renderer::ElementStyle, public LayerStyle @@ -46,6 +47,7 @@ public: QWidget* getInputWidget() const override; QWidget* getListDisplayWidget() const override; FillElementLayerStyle() = default; + FillElementLayerStyle(FillElementLayerStyle& other); ~FillElementLayerStyle() = default; - std::vector> materialStyles; + std::vector> materialStyles; }; \ No newline at end of file