91 QSvgNode(QSvgNode *parent=0);
93 void draw(QPainter *p, QSvgExtraStates &states);
94 virtual bool separateFillStroke(
const QSvgExtraStates &)
const {
return false;}
95 virtual void drawCommand(QPainter *p, QSvgExtraStates &states) = 0;
96 void fillThenStroke(QPainter *p, QSvgExtraStates &states);
97 QImage drawIntoBuffer(QPainter *p, QSvgExtraStates &states,
const QRect &boundsRect);
98 void applyMaskToBuffer(QImage *proxy, QImage mask)
const;
99 void drawWithMask(QPainter *p, QSvgExtraStates &states,
const QImage &mask,
const QRect &boundsRect);
100 void applyBufferToCanvas(QPainter *p, QImage proxy)
const;
102 QSvgNode *parent()
const;
103 bool isDescendantOf(
const QSvgNode *parent)
const;
105 void appendStyleProperty(QSvgStyleProperty *prop,
const QString &id);
106 void applyStyle(QPainter *p, QSvgExtraStates &states)
const;
107 void applyStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
108 void revertStyle(QPainter *p, QSvgExtraStates &states)
const;
109 void revertStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
110 void applyAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
111 void revertAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
112 QSvgStyleProperty *styleProperty(QSvgStyleProperty::Type type)
const;
113 QSvgPaintStyleProperty *styleProperty(QStringView id)
const;
115 QSvgTinyDocument *document()
const;
117 virtual Type type()
const = 0;
118 QString typeName()
const;
119 virtual QRectF internalFastBounds(QPainter *p, QSvgExtraStates &states)
const;
120 virtual QRectF internalBounds(QPainter *p, QSvgExtraStates &states)
const;
121 QRectF bounds(QPainter *p, QSvgExtraStates &states)
const;
122 QRectF bounds()
const;
123 virtual QRectF decoratedInternalBounds(QPainter *p, QSvgExtraStates &states)
const;
124 virtual QRectF decoratedBounds(QPainter *p, QSvgExtraStates &states)
const;
126 void setRequiredFeatures(
const QStringList &lst);
127 const QStringList & requiredFeatures()
const;
129 void setRequiredExtensions(
const QStringList &lst);
130 const QStringList & requiredExtensions()
const;
132 void setRequiredLanguages(
const QStringList &lst);
133 const QStringList & requiredLanguages()
const;
135 void setRequiredFormats(
const QStringList &lst);
136 const QStringList & requiredFormats()
const;
138 void setRequiredFonts(
const QStringList &lst);
139 const QStringList & requiredFonts()
const;
141 void setVisible(
bool visible);
142 bool isVisible()
const;
144 void setDisplayMode(DisplayMode display);
145 DisplayMode displayMode()
const;
147 QString nodeId()
const;
148 void setNodeId(
const QString &i);
150 QString xmlClass()
const;
151 void setXmlClass(
const QString &str);
153 QString maskId()
const;
154 void setMaskId(
const QString &str);
155 bool hasMask()
const;
157 QString filterId()
const;
158 void setFilterId(
const QString &str);
159 bool hasFilter()
const;
161 QString markerStartId()
const;
162 void setMarkerStartId(
const QString &str);
163 bool hasMarkerStart()
const;
165 QString markerMidId()
const;
166 void setMarkerMidId(
const QString &str);
167 bool hasMarkerMid()
const;
169 QString markerEndId()
const;
170 void setMarkerEndId(
const QString &str);
171 bool hasMarkerEnd()
const;
173 bool hasAnyMarker()
const;
175 virtual bool requiresGroupRendering()
const;
177 virtual bool shouldDrawNode(QPainter *p, QSvgExtraStates &states)
const;
178 const QSvgStaticStyle &style()
const {
return m_style; }
180 mutable QSvgStaticStyle m_style;
181 mutable QSvgAnimatedStyle m_animatedStyle;
183 QRectF filterRegion(QRectF bounds)
const;
185 static qreal strokeWidth(QPainter *p);
186 static void initPainter(QPainter *p);
192 static QRectF boundsOnStroke(QPainter *p,
const QPainterPath &path,
193 qreal width, BoundsMode mode);
198 QStringList m_requiredFeatures;
199 QStringList m_requiredExtensions;
200 QStringList m_requiredLanguages;
201 QStringList m_requiredFormats;
202 QStringList m_requiredFonts;
208 QString m_markerStartId;
209 QString m_markerMidId;
210 QString m_markerEndId;
212 mutable QRectF m_cachedBounds;
213 DisplayMode m_displayMode;
216 friend class QSvgTinyDocument;