Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_clone_layer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_CLONE_LAYER_H_
7#define KIS_CLONE_LAYER_H_
8
9#include <QObject>
10#include "kis_types.h"
11#include "kis_layer.h"
12
13#include <kritaimage_export.h>
14#include "kis_node_uuid_info.h"
15
16class KisNodeVisitor;
17
22
23
33class KRITAIMAGE_EXPORT KisCloneLayer : public KisLayer
34{
35
36 Q_OBJECT
37
38public:
39
40 KisCloneLayer(KisLayerSP from, KisImageWSP image, const QString &name, quint8 opacity);
41 KisCloneLayer(const KisCloneLayer& rhs);
42 ~KisCloneLayer() override;
43
44 KisNodeSP clone() const override {
45 return KisNodeSP(new KisCloneLayer(*this));
46 }
47
54 KisLayerSP reincarnateAsPaintLayer() const;
55
56 void setImage(KisImageWSP image) override;
57 bool allowAsChild(KisNodeSP) const override;
58
59 KisPaintDeviceSP original() const override;
60 KisPaintDeviceSP paintDevice() const override;
61 bool needProjection() const override;
62
63 const KoColorSpace* colorSpace() const override;
64
65 QIcon icon() const override;
67
68 qint32 x() const override;
69 qint32 y() const override;
70
71 void setX(qint32) override;
72 void setY(qint32) override;
73
75 QRect extent() const override;
76
78 QRect exactBounds() const override;
79
80 bool accept(KisNodeVisitor &) override;
81 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override;
82
88 void setCopyFromInfo(KisNodeUuidInfo info);
90
91 void setCopyFrom(KisLayerSP layer);
93
94 void setCopyType(CopyLayerType type);
95 CopyLayerType copyType() const;
96
101 void setDirtyOriginal(const QRect &rect, bool dontInvalidateFrames);
102
103 QRect needRectOnSourceForMasks(const QRect &rc) const;
104
105 void syncLodCache() override;
106
107protected:
108 // override from KisNode
109 QRect accessRect(const QRect &rect, PositionToFilthy pos) const override;
110
111 // override from KisLayer
112 void copyOriginalToProjection(const KisPaintDeviceSP original,
113 KisPaintDeviceSP projection,
114 const QRect& rect) const override;
115
116 void notifyParentVisibilityChanged(bool value) override;
117 QRect outgoingChangeRect(const QRect &rect) const override;
118private:
119
120 struct Private;
121 Private * const m_d {nullptr};
122
123};
124
125#endif // KIS_CLONE_LAYER_H_
126
float value(const T *src, size_t ch)
CopyLayerType
@ COPY_ORIGINAL
@ COPY_PROJECTION
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
const char * name(StandardAction id)
virtual KisPaintDeviceSP paintDevice() const =0
virtual QIcon icon() const
KisLayerSP copyFrom() const
KisNodeSP clone() const override
KisNodeUuidInfo copyFromInfo() const
void setImage(KisImageWSP image) override
Definition kis_layer.cc:378
qint32 y() const override
Definition kis_layer.cc:978
virtual QRect outgoingChangeRect(const QRect &rect) const
Definition kis_layer.cc:908
QRect exactBounds() const override
qint32 x() const override
Definition kis_layer.cc:973
QRect extent() const override
const KoColorSpace * colorSpace() const override
returns the image's colorSpace or null, if there is no image
Definition kis_layer.cc:225
void setX(qint32 x) override
Definition kis_layer.cc:983
KisPaintDeviceSP original() const override=0
virtual void copyOriginalToProjection(const KisPaintDeviceSP original, KisPaintDeviceSP projection, const QRect &rect) const
Definition kis_layer.cc:801
KisBaseNode::PropertyList sectionModelProperties() const override
Definition kis_layer.cc:272
void setY(qint32 y) override
Definition kis_layer.cc:989
virtual bool needProjection() const
Definition kis_layer.cc:796
void notifyParentVisibilityChanged(bool value) override
Definition kis_node.cpp:318
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
PositionToFilthy
Definition kis_node.h:58
virtual void syncLodCache()
Definition kis_node.cpp:677
virtual QRect accessRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const
Definition kis_node.cpp:230
virtual bool allowAsChild(KisNodeSP) const =0