13void QSvgVisitor::traverse(
const QSvgStructureNode *node)
15 switch (node->type()) {
16 case QSvgNode::Switch:
17 if (!visitSwitchNodeStart(
static_cast<
const QSvgSwitch *>(node)))
21 if (!visitDocumentNodeStart(
static_cast<
const QSvgDocument *>(node)))
25 if (!visitDefsNodeStart(
static_cast<
const QSvgDefs *>(node)))
29 if (!visitGroupNodeStart(
static_cast<
const QSvgG *>(node)))
33 if (!visitMaskNodeStart(
static_cast<
const QSvgMask *>(node)))
36 case QSvgNode::Symbol:
37 if (!visitSymbolNodeStart(
static_cast<
const QSvgSymbol *>(node)))
40 case QSvgNode::Filter:
41 if (!visitFilterNodeStart(
static_cast<
const QSvgFilterContainer *>(node)))
44 case QSvgNode::Marker:
45 if (!visitMarkerNodeStart(
static_cast<
const QSvgMarker *>(node)))
48 case QSvgNode::Pattern:
49 if (!visitPatternNodeStart(
static_cast<
const QSvgPattern *>(node)))
52 case QSvgNode::FeMerge:
53 case QSvgNode::FeMergenode:
54 case QSvgNode::FeColormatrix:
55 case QSvgNode::FeGaussianblur:
56 case QSvgNode::FeOffset:
57 case QSvgNode::FeComposite:
58 case QSvgNode::FeFlood:
59 case QSvgNode::FeBlend:
60 if (!visitFeFilterPrimitiveNodeStart(
static_cast<
const QSvgFeFilterPrimitive *>(node)))
68 for (
auto &child : node->renderers())
69 traverse(child.get());
71 switch (node->type()) {
72 case QSvgNode::Switch:
73 visitSwitchNodeEnd(
static_cast<
const QSvgSwitch *>(node));
76 visitDocumentNodeEnd(
static_cast<
const QSvgDocument *>(node));
79 visitDefsNodeEnd(
static_cast<
const QSvgDefs *>(node));
82 visitGroupNodeEnd(
static_cast<
const QSvgG *>(node));
85 visitMaskNodeEnd(
static_cast<
const QSvgMask *>(node));
87 case QSvgNode::Symbol:
88 visitSymbolNodeEnd(
static_cast<
const QSvgSymbol *>(node));
90 case QSvgNode::Filter:
91 visitFilterNodeEnd(
static_cast<
const QSvgFilterContainer *>(node));
93 case QSvgNode::Marker:
94 visitMarkerNodeEnd(
static_cast<
const QSvgMarker *>(node));
96 case QSvgNode::Pattern:
97 visitPatternNodeEnd(
static_cast<
const QSvgPattern *>(node));
99 case QSvgNode::FeMerge:
100 case QSvgNode::FeMergenode:
101 case QSvgNode::FeColormatrix:
102 case QSvgNode::FeGaussianblur:
103 case QSvgNode::FeOffset:
104 case QSvgNode::FeComposite:
105 case QSvgNode::FeFlood:
106 case QSvgNode::FeBlend:
107 visitFeFilterPrimitiveNodeEnd(
static_cast<
const QSvgFeFilterPrimitive *>(node));