32 QQuickQmlGenerator(
const QString fileName, QQuickVectorImageGenerator::GeneratorFlags flags,
const QString &outFileName);
33 ~QQuickQmlGenerator();
37 void setShapeTypeName(
const QString &name);
38 QString shapeTypeName()
const;
40 void setCommentString(
const QString commentString);
41 QString commentString()
const;
43 void setRetainFilePaths(
bool retainFilePaths)
45 m_retainFilePaths = retainFilePaths;
48 bool retainFilePaths()
const
50 return m_retainFilePaths;
53 void setAssetFileDirectory(
const QString &assetFileDirectory)
55 m_assetFileDirectory = assetFileDirectory;
58 QString assetFileDirectory()
const
60 return m_assetFileDirectory;
63 void setAssetFilePrefix(
const QString &assetFilePrefix)
65 m_assetFilePrefix = assetFilePrefix;
68 QString assetFilePrefix()
const
70 return m_assetFilePrefix;
73 void setUrlPrefix(
const QString &prefix)
78 QString urlPrefix()
const
83 void addExtraImport(
const QString &import)
85 m_extraImports.append(import);
88 QStringList extraImports()
const
90 return m_extraImports;
93 bool isRuntimeGenerator()
const
95 return !m_urlPrefix.isEmpty();
99 QString generateNodeBase(
const NodeInfo &info) override;
100 void generateNodeEnd(
const NodeInfo &info);
101 bool generateDefsNode(
const NodeInfo &info) override;
102 void generateImageNode(
const ImageNodeInfo &info) override;
103 void generatePath(
const PathNodeInfo &info,
const QRectF &overrideBoundingRect) override;
104 void generateNode(
const NodeInfo &info) override;
105 void generateTextNode(
const TextNodeInfo &info) override;
106 void generateUseNode(
const UseNodeInfo &info) override;
107 bool generateStructureNode(
const StructureNodeInfo &info) override;
108 bool generateRootNode(
const StructureNodeInfo &info) override;
109 bool generateMaskNode(
const MaskNodeInfo &info) override;
110 void outputShapePath(
const PathNodeInfo &info,
const QPainterPath *path,
const QQuadPath *quadPath, QQuickVectorImageGenerator::PathSelector pathSelector,
const QRectF &boundingRect) override;
113 enum class AnimationType {
118 void generateGradient(
const QGradient *grad);
119 void generateTransform(
const QTransform &xf);
120 void generatePathContainer(
const StructureNodeInfo &info);
121 void generateAnimateTransform(
const QString &targetName,
const NodeInfo &info);
122 void generateAnimationBindings();
123 void generateItemAnimations(
const QString &idString,
const NodeInfo &nodeInfo);
124 void generateEasing(
const QQuickAnimatedProperty::PropertyAnimation &animation,
int time);
125 void generateAnimatedPropertySetter(
const QString &targetName,
126 const QString &propertyName,
127 const QVariant &value,
128 const QQuickAnimatedProperty::PropertyAnimation &animation,
131 AnimationType animationType = AnimationType::Auto);
132 void generatePropertyAnimation(
const QQuickAnimatedProperty &property,
133 const QString &targetName,
134 const QString &propertyName,
135 AnimationType animationType = AnimationType::Auto);
136 void generateMaskUse(
const NodeInfo &info);
138 QStringView indent();
139 enum StreamFlags { NoFlags = 0x0, SameLine = 0x1 };
140 QTextStream &stream(
int flags = NoFlags);
141 const char *shapeName()
const;
147 int m_indentLevel = 0;
148 QTextStream m_stream;
149 QString outputFileName;
150 int m_inShapeItemLevel = 0;
151 QByteArray m_shapeTypeName;
152 QString m_commentString;
153 bool m_retainFilePaths =
false;
154 QString m_assetFileDirectory;
155 QString m_assetFilePrefix;
157 QString m_topLevelIdString;
158 QStringList m_extraImports;
159 QMap<std::array<qreal, 4>, QString> m_easings;
160 QSet<QString> m_generatedIds;