Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_node_visitor.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2005 C. Boemann <cbo@boemann.dk>
3 * SPDX-FileCopyrightText: 2007, 2008 Boudewijn Rempt <boud@valdyas.org>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#include "kis_node_visitor.h"
9#include "kis_node.h"
10
11bool KisNodeVisitor::visitAll(KisNode * node, bool breakOnFail)
12{
13 for (uint i = 0; i < node->childCount(); ++i) {
14 if (!node->at(i)->accept(*this)) {
15 if (breakOnFail)
16 return false;
17 }
18 }
19 return true;
20}
21
22
23
33bool KisNodeVisitor::visitAllInverse(KisNode * node, bool breakOnFail)
34{
35 KisNodeSP child = node->lastChild();
36 while (child) {
37 if (!child->accept(*this)) {
38 if (breakOnFail)
39 return false;
40 }
41 child = child->prevSibling();
42 }
43 return true;
44}
unsigned int uint
bool visitAll(KisNode *node, bool breakOnFail=false)
bool visitAllInverse(KisNode *node, bool breakOnFail=false)
KisNodeSP prevSibling() const
Definition kis_node.cpp:402
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
quint32 childCount() const
Definition kis_node.cpp:414
KisNodeSP lastChild() const
Definition kis_node.cpp:367
KisNodeSP at(quint32 index) const
Definition kis_node.cpp:421