Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCountVisitor Class Reference

#include <kis_count_visitor.h>

+ Inheritance diagram for KisCountVisitor:

Public Member Functions

quint32 count ()
 
 KisCountVisitor (const QStringList &nodeTypes, const KoProperties &properties)
 
bool visit (KisAdjustmentLayer *layer) override
 
virtual bool visit (KisAdjustmentLayer *layer)=0
 
bool visit (KisCloneLayer *layer) override
 
virtual bool visit (KisCloneLayer *layer)=0
 
bool visit (KisColorizeMask *mask) override
 
virtual bool visit (KisColorizeMask *mask)=0
 
bool visit (KisExternalLayer *layer) override
 
virtual bool visit (KisExternalLayer *layer)=0
 
bool visit (KisFilterMask *mask) override
 
virtual bool visit (KisFilterMask *mask)=0
 
bool visit (KisGeneratorLayer *layer) override
 
virtual bool visit (KisGeneratorLayer *layer)=0
 
bool visit (KisGroupLayer *layer) override
 
virtual bool visit (KisGroupLayer *layer)=0
 
bool visit (KisNode *node) override
 
virtual bool visit (KisNode *node)=0
 
bool visit (KisPaintLayer *layer) override
 
virtual bool visit (KisPaintLayer *layer)=0
 
bool visit (KisSelectionMask *mask) override
 
virtual bool visit (KisSelectionMask *mask)=0
 
bool visit (KisTransformMask *mask) override
 
virtual bool visit (KisTransformMask *mask)=0
 
bool visit (KisTransparencyMask *mask) override
 
virtual bool visit (KisTransparencyMask *mask)=0
 
- Public Member Functions inherited from KisNodeVisitor
 KisNodeVisitor ()
 
virtual ~KisNodeVisitor ()
 

Private Member Functions

bool check (KisNode *node)
 
bool inList (KisNode *node)
 

Private Attributes

quint32 m_count
 
const QStringList m_nodeTypes
 
const KoProperties m_properties
 

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

The count visitor traverses the node stack for nodes that conform to certain properties. You can set the types of nodes to count and add a list of properties to check. The children of nodes that are not counted will be checked and counted if they conform to the requirements.

Definition at line 34 of file kis_count_visitor.h.

Constructor & Destructor Documentation

◆ KisCountVisitor()

KisCountVisitor::KisCountVisitor ( const QStringList & nodeTypes,
const KoProperties & properties )
inline

Definition at line 40 of file kis_count_visitor.h.

41 : m_nodeTypes(nodeTypes)
42 , m_properties(properties)
43 , m_count(0) {
44 }
const KoProperties m_properties
const QStringList m_nodeTypes

Member Function Documentation

◆ check()

bool KisCountVisitor::check ( KisNode * node)
private

Definition at line 19 of file kis_count_visitor.cpp.

20{
21 if (m_nodeTypes.isEmpty() || inList(node)) {
22
23 if (m_properties.isEmpty() || node->check(m_properties)) {
24 m_count++;
25 }
26 }
27 visitAll(node);
28
29 return true;
30}
bool inList(KisNode *node)
bool visitAll(KisNode *node, bool breakOnFail=false)
bool isEmpty() const
bool check(const KoProperties &properties) const

References KisBaseNode::check(), inList(), KoProperties::isEmpty(), m_count, m_nodeTypes, m_properties, and KisNodeVisitor::visitAll().

◆ count()

quint32 KisCountVisitor::count ( )
inline

Definition at line 46 of file kis_count_visitor.h.

46 {
47 return m_count;
48 }

◆ inList()

bool KisCountVisitor::inList ( KisNode * node)
private

Definition at line 10 of file kis_count_visitor.cpp.

11{
12 Q_FOREACH (const QString& nodeType, m_nodeTypes) {
13 if (node->inherits(nodeType.toLatin1()))
14 return true;
15 }
16 return false;
17}
char nodeType(const KoPathPoint *point)

References m_nodeTypes, and nodeType().

◆ visit() [1/24]

bool KisCountVisitor::visit ( KisAdjustmentLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 63 of file kis_count_visitor.h.

63 {
64 return check(layer);
65 }
bool check(KisNode *node)

◆ visit() [2/24]

virtual bool KisNodeVisitor::visit ( KisAdjustmentLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [3/24]

bool KisCountVisitor::visit ( KisCloneLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 73 of file kis_count_visitor.h.

73 {
74 return check(layer);
75 }

◆ visit() [4/24]

virtual bool KisNodeVisitor::visit ( KisCloneLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [5/24]

bool KisCountVisitor::visit ( KisColorizeMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 99 of file kis_count_visitor.h.

99 {
100 return check(mask);
101 }

◆ visit() [6/24]

virtual bool KisNodeVisitor::visit ( KisColorizeMask * mask)
virtual

Implements KisNodeVisitor.

◆ visit() [7/24]

bool KisCountVisitor::visit ( KisExternalLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 68 of file kis_count_visitor.h.

68 {
69 return check(layer);
70 }

◆ visit() [8/24]

virtual bool KisNodeVisitor::visit ( KisExternalLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [9/24]

bool KisCountVisitor::visit ( KisFilterMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 78 of file kis_count_visitor.h.

78 {
79 return check(mask);
80 }

◆ visit() [10/24]

virtual bool KisNodeVisitor::visit ( KisFilterMask * mask)
virtual

Implements KisNodeVisitor.

◆ visit() [11/24]

bool KisCountVisitor::visit ( KisGeneratorLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 91 of file kis_count_visitor.h.

91 {
92 return check(layer);
93 }

◆ visit() [12/24]

virtual bool KisNodeVisitor::visit ( KisGeneratorLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [13/24]

bool KisCountVisitor::visit ( KisGroupLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 58 of file kis_count_visitor.h.

58 {
59 return check(layer);
60 }

◆ visit() [14/24]

virtual bool KisNodeVisitor::visit ( KisGroupLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [15/24]

bool KisCountVisitor::visit ( KisNode * node)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 50 of file kis_count_visitor.h.

50 {
51 return check(node);
52 }

◆ visit() [16/24]

virtual bool KisNodeVisitor::visit ( KisNode * node)
virtual

Implements KisNodeVisitor.

◆ visit() [17/24]

bool KisCountVisitor::visit ( KisPaintLayer * layer)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 54 of file kis_count_visitor.h.

54 {
55 return check(layer);
56 }

◆ visit() [18/24]

virtual bool KisNodeVisitor::visit ( KisPaintLayer * layer)
virtual

Implements KisNodeVisitor.

◆ visit() [19/24]

bool KisCountVisitor::visit ( KisSelectionMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 95 of file kis_count_visitor.h.

95 {
96 return check(mask);
97 }

◆ visit() [20/24]

virtual bool KisNodeVisitor::visit ( KisSelectionMask * mask)
virtual

Implements KisNodeVisitor.

◆ visit() [21/24]

bool KisCountVisitor::visit ( KisTransformMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 82 of file kis_count_visitor.h.

82 {
83 return check(mask);
84 }

◆ visit() [22/24]

virtual bool KisNodeVisitor::visit ( KisTransformMask * mask)
virtual

Implements KisNodeVisitor.

◆ visit() [23/24]

bool KisCountVisitor::visit ( KisTransparencyMask * mask)
inlineoverridevirtual

Implements KisNodeVisitor.

Definition at line 86 of file kis_count_visitor.h.

86 {
87 return check(mask);
88 }

◆ visit() [24/24]

virtual bool KisNodeVisitor::visit ( KisTransparencyMask * mask)
virtual

Implements KisNodeVisitor.

Member Data Documentation

◆ m_count

quint32 KisCountVisitor::m_count
private

Definition at line 110 of file kis_count_visitor.h.

◆ m_nodeTypes

const QStringList KisCountVisitor::m_nodeTypes
private

Definition at line 108 of file kis_count_visitor.h.

◆ m_properties

const KoProperties KisCountVisitor::m_properties
private

Definition at line 109 of file kis_count_visitor.h.


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