Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCompositionVisitor Class Reference
+ Inheritance diagram for KisCompositionVisitor:

Public Types

enum  Mode { STORE , APPLY }
 

Public Member Functions

 KisCompositionVisitor (KisLayerComposition *layerComposition, Mode mode)
 
bool process (KisNode *node)
 
bool visit (KisAdjustmentLayer *layer) override
 
bool visit (KisCloneLayer *layer) override
 
bool visit (KisColorizeMask *mask) override
 
bool visit (KisExternalLayer *layer) override
 
bool visit (KisFilterMask *mask) override
 
bool visit (KisGeneratorLayer *layer) override
 
bool visit (KisGroupLayer *layer) override
 
bool visit (KisNode *node) override
 
bool visit (KisPaintLayer *layer) override
 
bool visit (KisSelectionMask *mask) override
 
bool visit (KisTransformMask *mask) override
 
bool visit (KisTransparencyMask *mask) override
 
- Public Member Functions inherited from KisNodeVisitor
 KisNodeVisitor ()
 
virtual ~KisNodeVisitor ()
 

Private Attributes

KisLayerCompositionm_layerComposition
 
Mode m_mode
 

Additional Inherited Members

- Protected Member Functions inherited from KisNodeVisitor
bool visitAll (KisNode *node, bool breakOnFail=false)
 
bool visitAllInverse (KisNode *node, bool breakOnFail=false)
 

Detailed Description

Definition at line 25 of file kis_layer_composition.cpp.

Member Enumeration Documentation

◆ Mode

Enumerator
STORE 
APPLY 

Definition at line 27 of file kis_layer_composition.cpp.

Constructor & Destructor Documentation

◆ KisCompositionVisitor()

KisCompositionVisitor::KisCompositionVisitor ( KisLayerComposition * layerComposition,
Mode mode )
inline

Definition at line 32 of file kis_layer_composition.cpp.

33 : m_layerComposition(layerComposition)
34 , m_mode(mode)
35 {
36 }
KisLayerComposition * m_layerComposition

Member Function Documentation

◆ process()

bool KisCompositionVisitor::process ( KisNode * node)
inline

Definition at line 58 of file kis_layer_composition.cpp.

58 {
59 if (node->isFakeNode()) {
60 dbgKrita << "Compositions: Skipping over Fake Node" << node->uuid() << node->name();
61 return true;
62 }
63
64 bool result = visitAll(node);
65
66 if(m_mode == STORE) {
69 } else {
70 bool newState = false;
71 if(m_layerComposition->m_visibilityMap.contains(node->uuid())) {
72 newState = m_layerComposition->m_visibilityMap[node->uuid()];
73 }
74 if(node->visible() != newState) {
76 node->setDirty();
77 }
78 if(m_layerComposition->m_collapsedMap.contains(node->uuid())) {
80 }
81 }
82
83 return result;
84 }
QMap< QUuid, bool > m_visibilityMap
QMap< QUuid, bool > m_collapsedMap
bool visitAll(KisNode *node, bool breakOnFail=false)
#define dbgKrita
Definition kis_debug.h:45
QUuid uuid() const
virtual void setVisible(bool visible, bool loading=false)
void setCollapsed(bool collapsed)
QString name() const
virtual bool isFakeNode() const
virtual bool visible(bool recursive=false) const
virtual void setDirty()
Definition kis_node.cpp:577

References KisBaseNode::collapsed, dbgKrita, KisBaseNode::isFakeNode(), KisLayerComposition::m_collapsedMap, m_layerComposition, m_mode, KisLayerComposition::m_visibilityMap, KisBaseNode::name(), KisBaseNode::setCollapsed(), KisNode::setDirty(), KisBaseNode::setVisible(), STORE, KisBaseNode::uuid(), KisBaseNode::visible(), and KisNodeVisitor::visitAll().

◆ visit() [1/12]

bool KisCompositionVisitor::visit ( KisAdjustmentLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 47 of file kis_layer_composition.cpp.

47{ return process(layer); }

References process().

◆ visit() [2/12]

bool KisCompositionVisitor::visit ( KisCloneLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 51 of file kis_layer_composition.cpp.

51{ return process(layer); }

References process().

◆ visit() [3/12]

bool KisCompositionVisitor::visit ( KisColorizeMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 56 of file kis_layer_composition.cpp.

56{ return process(mask); }

References process().

◆ visit() [4/12]

bool KisCompositionVisitor::visit ( KisExternalLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 49 of file kis_layer_composition.cpp.

49{ return process(layer); }

References process().

◆ visit() [5/12]

bool KisCompositionVisitor::visit ( KisFilterMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 52 of file kis_layer_composition.cpp.

52{ return process(mask); }

References process().

◆ visit() [6/12]

bool KisCompositionVisitor::visit ( KisGeneratorLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 50 of file kis_layer_composition.cpp.

50{ return process(layer); }

References process().

◆ visit() [7/12]

bool KisCompositionVisitor::visit ( KisGroupLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 39 of file kis_layer_composition.cpp.

40 {
41 bool result = visitAll(layer);
42 if(layer == layer->image()->rootLayer()) {
43 return result;
44 }
45 return result && process(layer);
46 }
KisGroupLayerSP rootLayer() const
KisImageWSP image

References KisBaseNode::image, process(), KisImage::rootLayer(), and KisNodeVisitor::visitAll().

◆ visit() [8/12]

bool KisCompositionVisitor::visit ( KisNode * node)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 38 of file kis_layer_composition.cpp.

38{ return process(node); }

References process().

◆ visit() [9/12]

bool KisCompositionVisitor::visit ( KisPaintLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 48 of file kis_layer_composition.cpp.

48{ return process(layer); }

References process().

◆ visit() [10/12]

bool KisCompositionVisitor::visit ( KisSelectionMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 55 of file kis_layer_composition.cpp.

55{ return process(mask); }

References process().

◆ visit() [11/12]

bool KisCompositionVisitor::visit ( KisTransformMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 53 of file kis_layer_composition.cpp.

53{ return process(mask); }

References process().

◆ visit() [12/12]

bool KisCompositionVisitor::visit ( KisTransparencyMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 54 of file kis_layer_composition.cpp.

54{ return process(mask); }

References process().

Member Data Documentation

◆ m_layerComposition

KisLayerComposition* KisCompositionVisitor::m_layerComposition
private

Definition at line 86 of file kis_layer_composition.cpp.

◆ m_mode

Mode KisCompositionVisitor::m_mode
private

Definition at line 87 of file kis_layer_composition.cpp.


The documentation for this class was generated from the following file: