89 QSvgNode(QSvgNode *parent=0);
91 void draw(QPainter *p, QSvgExtraStates &states);
92 virtual bool separateFillStroke(
const QSvgExtraStates &)
const {
return false;}
93 virtual void drawCommand(QPainter *p, QSvgExtraStates &states) = 0;
94 void fillThenStroke(QPainter *p, QSvgExtraStates &states);
95 QImage drawIntoBuffer(QPainter *p, QSvgExtraStates &states,
const QRect &boundsRect);
96 void applyMaskToBuffer(QImage *proxy, QImage mask)
const;
97 void drawWithMask(QPainter *p, QSvgExtraStates &states,
const QImage &mask,
const QRect &boundsRect);
98 void applyBufferToCanvas(QPainter *p, QImage proxy)
const;
100 QSvgNode *parent()
const;
101 bool isDescendantOf(
const QSvgNode *parent)
const;
103 void appendStyleProperty(QSvgStyleProperty *prop,
const QString &id);
104 void applyStyle(QPainter *p, QSvgExtraStates &states)
const;
105 void applyStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
106 void revertStyle(QPainter *p, QSvgExtraStates &states)
const;
107 void revertStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
108 void applyAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
109 void revertAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
110 QSvgStyleProperty *styleProperty(QSvgStyleProperty::Type type)
const;
111 QSvgPaintStyleProperty *styleProperty(QStringView id)
const;
113 QSvgDocument *document()
const;
115 virtual Type type()
const = 0;
116 QString typeName()
const;
117 virtual QRectF internalFastBounds(QPainter *p, QSvgExtraStates &states)
const;
118 virtual QRectF internalBounds(QPainter *p, QSvgExtraStates &states)
const;
119 QRectF bounds(QPainter *p, QSvgExtraStates &states)
const;
120 QRectF bounds()
const;
121 virtual QRectF decoratedInternalBounds(QPainter *p, QSvgExtraStates &states)
const;
122 virtual QRectF decoratedBounds(QPainter *p, QSvgExtraStates &states)
const;
124 void setRequiredFeatures(
const QStringList &lst);
125 const QStringList & requiredFeatures()
const;
127 void setRequiredExtensions(
const QStringList &lst);
128 const QStringList & requiredExtensions()
const;
130 void setRequiredLanguages(
const QStringList &lst);
131 const QStringList & requiredLanguages()
const;
133 void setRequiredFormats(
const QStringList &lst);
134 const QStringList & requiredFormats()
const;
136 void setRequiredFonts(
const QStringList &lst);
137 const QStringList & requiredFonts()
const;
139 void setVisible(
bool visible);
140 bool isVisible()
const;
142 void setDisplayMode(DisplayMode display);
143 DisplayMode displayMode()
const;
145 QString nodeId()
const;
146 void setNodeId(
const QString &i);
148 QString xmlClass()
const;
149 void setXmlClass(
const QString &str);
151 QString maskId()
const;
152 void setMaskId(
const QString &str);
153 bool hasMask()
const;
155 QString filterId()
const;
156 void setFilterId(
const QString &str);
157 bool hasFilter()
const;
159 QString markerStartId()
const;
160 void setMarkerStartId(
const QString &str);
161 bool hasMarkerStart()
const;
163 QString markerMidId()
const;
164 void setMarkerMidId(
const QString &str);
165 bool hasMarkerMid()
const;
167 QString markerEndId()
const;
168 void setMarkerEndId(
const QString &str);
169 bool hasMarkerEnd()
const;
171 bool hasAnyMarker()
const;
173 virtual bool requiresGroupRendering()
const;
175 virtual bool shouldDrawNode(QPainter *p, QSvgExtraStates &states)
const;
176 const QSvgStaticStyle &style()
const {
return m_style; }
178 mutable QSvgStaticStyle m_style;
179 mutable QSvgAnimatedStyle m_animatedStyle;
181 QRectF filterRegion(QRectF bounds)
const;
183 static qreal strokeWidth(QPainter *p);
184 static void initPainter(QPainter *p);
190 static QRectF boundsOnStroke(QPainter *p,
const QPainterPath &path,
191 qreal width, BoundsMode mode);
196 QStringList m_requiredFeatures;
197 QStringList m_requiredExtensions;
198 QStringList m_requiredLanguages;
199 QStringList m_requiredFormats;
200 QStringList m_requiredFonts;
206 QString m_markerStartId;
207 QString m_markerMidId;
208 QString m_markerEndId;
210 mutable QRectF m_cachedBounds;
211 DisplayMode m_displayMode;
214 friend class QSvgDocument;