File indexing completed on 2024-05-12 15:59:04

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 #ifndef LIBKIS_CLONELAYER_H
0007 #define LIBKIS_CLONELAYER_H
0008 
0009 #include <QObject>
0010 #include "Node.h"
0011 
0012 #include <kis_types.h>
0013 
0014 #include "kritalibkis_export.h"
0015 #include "libkis.h"
0016 
0017 /**
0018  * @brief The CloneLayer class
0019  * A clone layer is a layer that takes a reference inside the image
0020  * and shows the exact same pixeldata.
0021  *
0022  * If the original is updated, the clone layer will update too.
0023  */
0024 
0025 class KRITALIBKIS_EXPORT CloneLayer : public Node
0026 {
0027     Q_OBJECT
0028     Q_DISABLE_COPY(CloneLayer)
0029 
0030 public:
0031     explicit CloneLayer(KisImageSP image, QString name, KisLayerSP source, QObject *parent = 0);
0032 
0033     /**
0034      * @brief CloneLayer
0035      * function for wrapping a preexisting node into a clonelayer object.
0036      * @param layer the clone layer
0037      * @param parent the parent QObject
0038      */
0039     explicit CloneLayer(KisCloneLayerSP layer, QObject *parent = 0);
0040     ~CloneLayer() override;
0041 public Q_SLOTS:
0042 
0043     /**
0044      * @brief type Krita has several types of nodes, split in layers and masks. Group
0045      * layers can contain other layers, any layer can contain masks.
0046      *
0047      * @return clonelayer
0048      */
0049     virtual QString type() const override;
0050 };
0051 
0052 #endif // LIBKIS_PAINTLAYER_H
0053