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 virtual Type type()
const = 0;
114 QLatin1StringView typeName()
const;
115 virtual QRectF internalFastBounds(QPainter *p, QSvgExtraStates &states)
const;
116 virtual QRectF internalBounds(QPainter *p, QSvgExtraStates &states)
const;
117 QRectF bounds(QPainter *p, QSvgExtraStates &states)
const;
118 QRectF bounds(
const QSvgDocument *doc)
const;
119 virtual QRectF decoratedInternalBounds(QPainter *p, QSvgExtraStates &states)
const;
120 virtual QRectF decoratedBounds(QPainter *p, QSvgExtraStates &states)
const;
122 void setRequiredFeatures(
const QStringList &lst);
123 const QStringList & requiredFeatures()
const;
125 void setRequiredExtensions(
const QStringList &lst);
126 const QStringList & requiredExtensions()
const;
128 void setRequiredLanguages(
const QStringList &lst);
129 const QStringList & requiredLanguages()
const;
131 void setRequiredFormats(
const QStringList &lst);
132 const QStringList & requiredFormats()
const;
134 void setRequiredFonts(
const QStringList &lst);
135 const QStringList & requiredFonts()
const;
137 void setVisible(
bool visible);
138 bool isVisible()
const;
140 void setDisplayMode(DisplayMode display);
141 DisplayMode displayMode()
const;
143 QString nodeId()
const;
144 void setNodeId(
const QString &i);
146 QString xmlClass()
const;
147 void setXmlClass(
const QString &str);
149 QString maskId()
const;
150 void setMaskId(
const QString &str);
151 bool hasMask()
const;
153 QString filterId()
const;
154 void setFilterId(
const QString &str);
155 bool hasFilter()
const;
157 QString markerStartId()
const;
158 void setMarkerStartId(
const QString &str);
159 bool hasMarkerStart()
const;
161 QString markerMidId()
const;
162 void setMarkerMidId(
const QString &str);
163 bool hasMarkerMid()
const;
165 QString markerEndId()
const;
166 void setMarkerEndId(
const QString &str);
167 bool hasMarkerEnd()
const;
169 bool hasAnyMarker()
const;
171 virtual bool requiresGroupRendering()
const;
173 virtual bool shouldDrawNode(QPainter *p, QSvgExtraStates &states)
const;
174 const QSvgStaticStyle &style()
const {
return m_style; }
176 mutable QSvgStaticStyle m_style;
177 mutable QSvgAnimatedStyle m_animatedStyle;
179 QRectF filterRegion(
const QSvgDocument *doc, QRectF bounds)
const;
181 static qreal strokeWidth(QPainter *p);
182 static void initPainter(QPainter *p);
188 static QRectF boundsOnStroke(QPainter *p,
const QPainterPath &path,
189 qreal width, BoundsMode mode);
194 QStringList m_requiredFeatures;
195 QStringList m_requiredExtensions;
196 QStringList m_requiredLanguages;
197 QStringList m_requiredFormats;
198 QStringList m_requiredFonts;
204 QString m_markerStartId;
205 QString m_markerMidId;
206 QString m_markerEndId;
208 mutable QRectF m_cachedBounds;
209 DisplayMode m_displayMode;
212 friend class QSvgDocument;
215 Q_DISABLE_COPY_X(QSvgNode,
"Classes inheriting from this class may contain"
216 "a vector of unique pointers as a member variable")