4#ifndef QSVGVISITORIMPL_P_H
5#define QSVGVISITORIMPL_P_H
18#include <QtSvg/private/qsvgvisitor_p.h>
22#include <QtCore/qhash.h>
23#include <QtCore/qset.h>
28class QSvgTinyDocument;
35 QSvgVisitorImpl(
const QString svgFileName, QQuickGenerator *generator,
bool assumeTrustedSource);
39 void visitNode(
const QSvgNode *node)
override;
66 typedef std::pair<
const QSvgAbstractAnimation *,
const QSvgAbstractAnimatedProperty *> AnimationPair;
67 QList<AnimationPair> collectAnimations(
const QSvgNode *node,
const QString &propertyName);
68 void applyAnimationsToProperty(
const QList<AnimationPair> &animations,
69 QQuickAnimatedProperty *property,
70 std::function<QVariant(
const QSvgAbstractAnimatedProperty *,
int index,
int subtype)> calculateValue);
72 void fillCommonNodeInfo(
const QSvgNode *node,
NodeInfo &info,
const QString &idSuffix = QString{});
73 void fillPathAnimationInfo(
const QSvgNode *node,
PathNodeInfo &info);
74 void fillAnimationInfo(
const QSvgNode *node,
NodeInfo &info);
75 void fillColorAnimationInfo(
const QSvgNode *node,
PathNodeInfo &info);
76 void fillTransformAnimationInfo(
const QSvgNode *node,
NodeInfo &info);
77 void handleBaseNodeSetup(
const QSvgNode *node);
78 void handleBaseNode(
const QSvgNode *node);
79 void handleBaseNodeEnd(
const QSvgNode *node);
80 void handlePathNode(
const QSvgNode *node,
const QPainterPath &path);
81 void outputShapePath(QPainterPath pathCopy,
const PathNodeInfo &info);
82 QString nextNodeId()
const;
83 static QString gradientCssDescription(
const QGradient *gradient);
84 static QString colorCssDescription(QColor color);
87 QString m_svgFileName;
88 QQuickGenerator *m_generator;
89 bool m_assumeTrustedSource;
90 mutable int m_nodeIdCounter = 0;
91 QHash<QString, QString> m_idForNodeId;
92 QSet<QString> m_generatedNodes;
void visitPolygonNode(const QSvgPolygon *node) override
bool visitSwitchNodeStart(const QSvgSwitch *node) override
void visitMaskNodeEnd(const QSvgMask *node) override
void visitEllipseNode(const QSvgEllipse *node) override
void visitPathNode(const QSvgPath *node) override
bool visitDefsNodeStart(const QSvgDefs *node) override
bool visitMaskNodeStart(const QSvgMask *node) override
void visitDocumentNodeEnd(const QSvgTinyDocument *node) override
void visitStructureNodeEnd(const QSvgStructureNode *node) override
void visitRectNode(const QSvgRect *node) override
void visitLineNode(const QSvgLine *node) override
void visitNode(const QSvgNode *node) override
void visitPolylineNode(const QSvgPolyline *node) override
QSvgVisitorImpl(const QString svgFileName, QQuickGenerator *generator, bool assumeTrustedSource)
void visitUseNode(const QSvgUse *node) override
bool visitDocumentNodeStart(const QSvgTinyDocument *node) override
bool visitSymbolNodeStart(const QSvgSymbol *node) override
void visitImageNode(const QSvgImage *node) override
void visitTextNode(const QSvgText *node) override
void visitSwitchNodeEnd(const QSvgSwitch *node) override
void visitSymbolNodeEnd(const QSvgSymbol *node) override
bool visitStructureNodeStart(const QSvgStructureNode *node) override
Combined button and popup list for selecting options.
QT_BEGIN_NAMESPACE QT_DECLARE_EXPORTED_QT_LOGGING_CATEGORY(lcAotCompiler, Q_QMLCOMPILER_EXPORT)