90 QSvgNode(QSvgNode *parent=0);
92 void draw(QPainter *p, QSvgExtraStates &states);
93 virtual bool separateFillStroke(
const QPainter *,
const QSvgExtraStates &)
const {
return false;}
94 virtual void drawCommand(QPainter *p, QSvgExtraStates &states) = 0;
95 void fillThenStroke(QPainter *p, QSvgExtraStates &states);
96 QImage drawIntoBuffer(QPainter *p, QSvgExtraStates &states,
const QRect &boundsRect);
97 void applyMaskToBuffer(QImage *proxy,
const QImage &mask)
const;
98 void drawWithMask(QPainter *p, QSvgExtraStates &states,
const QImage &mask,
const QRect &boundsRect);
99 void applyBufferToCanvas(QPainter *p,
const QImage &proxy)
const;
101 QSvgNode *parent()
const;
102 bool isDescendantOf(
const QSvgNode *parent)
const;
104 void appendStyleProperty(QSvgStylePropertyPtr prop);
105 void applyStyle(QPainter *p, QSvgExtraStates &states)
const;
106 void applyStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
107 void revertStyle(QPainter *p, QSvgExtraStates &states)
const;
108 void revertStyleRecursive(QPainter *p, QSvgExtraStates &states)
const;
109 void applyAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
110 void revertAnimatedStyle(QPainter *p, QSvgExtraStates &states)
const;
111 QSvgStyleProperty *styleProperty(QSvgStyleProperty::Type type)
const;
113 QSvgDocument *document()
const;
115 virtual Type type()
const = 0;
116 QLatin1StringView 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;
217 Q_DISABLE_COPY_X(QSvgNode,
"Classes inheriting from this class may contain"
218 "a vector of unique pointers as a member variable")