File indexing completed on 2024-05-19 04:26:54
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #include "CloneLayer.h" 0007 #include <kis_clone_layer.h> 0008 #include <kis_image.h> 0009 #include <kis_layer.h> 0010 0011 CloneLayer::CloneLayer(KisImageSP image, QString name, KisLayerSP source, QObject *parent) : 0012 Node(image, new KisCloneLayer(source, image, name, OPACITY_OPAQUE_U8), parent) 0013 { 0014 0015 } 0016 0017 CloneLayer::CloneLayer(KisCloneLayerSP layer, QObject *parent): 0018 Node(layer->image(), layer, parent) 0019 { 0020 0021 } 0022 0023 CloneLayer::~CloneLayer() 0024 { 0025 0026 } 0027 0028 Node* CloneLayer::sourceNode() const 0029 { 0030 const KisCloneLayer* layer = qobject_cast<const KisCloneLayer*>(this->node().data()); 0031 KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(layer, 0); 0032 0033 return Node::createNode(0, layer->copyFrom()); 0034 } 0035 0036 void CloneLayer::setSourceNode(Node* node) 0037 { 0038 if (!node->node()) return; 0039 0040 KisCloneLayerSP layer = qobject_cast<KisCloneLayer*>(this->node().data()); 0041 KIS_SAFE_ASSERT_RECOVER_RETURN(layer); 0042 0043 KisLayerSP source = qobject_cast<KisLayer*>(node->node().data()); 0044 0045 layer->setCopyFrom(source); 0046 } 0047 0048 QString CloneLayer::type() const 0049 { 0050 return "clonelayer"; 0051 }