Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qsvgnode_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QSVGNODE_P_H
5#define QSVGNODE_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qsvgstyle_p.h"
19#include "qtsvgglobal_p.h"
20#include "qsvghelper_p.h"
21
22#include "QtCore/qstring.h"
23#include "QtCore/qhash.h"
24
26
27class QPainter;
29
30class Q_SVG_EXPORT QSvgNode
31{
32public:
87
88public:
89 QSvgNode(QSvgNode *parent=0);
90 virtual ~QSvgNode();
92 virtual bool separateFillStroke() const {return false;}
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;
99
100 QSvgNode *parent() const;
101 bool isDescendantOf(const QSvgNode *parent) const;
102
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 QSvgStyleProperty *styleProperty(QSvgStyleProperty::Type type) const;
108 QSvgPaintStyleProperty *styleProperty(const QString &id) const;
109
110 QSvgTinyDocument *document() const;
111
112 virtual Type type() const = 0;
113 QString typeName() const;
114 virtual QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const;
115 virtual QRectF bounds(QPainter *p, QSvgExtraStates &states) const;
116 virtual QRectF transformedBounds(QPainter *p, QSvgExtraStates &states) const;
117 QRectF transformedBounds() const;
118
119 void setRequiredFeatures(const QStringList &lst);
120 const QStringList & requiredFeatures() const;
121
122 void setRequiredExtensions(const QStringList &lst);
123 const QStringList & requiredExtensions() const;
124
125 void setRequiredLanguages(const QStringList &lst);
126 const QStringList & requiredLanguages() const;
127
128 void setRequiredFormats(const QStringList &lst);
129 const QStringList & requiredFormats() const;
130
131 void setRequiredFonts(const QStringList &lst);
132 const QStringList & requiredFonts() const;
133
134 void setVisible(bool visible);
135 bool isVisible() const;
136
137 void setDisplayMode(DisplayMode display);
138 DisplayMode displayMode() const;
139
140 QString nodeId() const;
141 void setNodeId(const QString &i);
142
143 QString xmlClass() const;
144 void setXmlClass(const QString &str);
145
146 QString maskId() const;
147 void setMaskId(const QString &str);
148 bool hasMask() const;
149
150 QString filterId() const;
151 void setFilterId(const QString &str);
152 bool hasFilter() const;
153
154 QString markerStartId() const;
155 void setMarkerStartId(const QString &str);
156 bool hasMarkerStart() const;
157
158 QString markerMidId() const;
159 void setMarkerMidId(const QString &str);
160 bool hasMarkerMid() const;
161
162 QString markerEndId() const;
163 void setMarkerEndId(const QString &str);
164 bool hasMarkerEnd() const;
165
166 bool hasAnyMarker() const;
167
168 virtual bool shouldDrawNode(QPainter *p, QSvgExtraStates &states) const;
169 const QSvgStyle &style() const { return m_style; }
170protected:
172
173 static qreal strokeWidth(QPainter *p);
174 static void initPainter(QPainter *p);
175
176private:
177 QSvgNode *m_parent;
178
179 QStringList m_requiredFeatures;
180 QStringList m_requiredExtensions;
181 QStringList m_requiredLanguages;
182 QStringList m_requiredFormats;
183 QStringList m_requiredFonts;
184
185 bool m_visible;
186
187 QString m_id;
188 QString m_class;
189 QString m_maskId;
190 QString m_filterId;
191 QString m_markerStartId;
192 QString m_markerMidId;
193 QString m_markerEndId;
194
195
196 DisplayMode m_displayMode;
197 mutable QRectF m_cachedBounds;
198
199 friend class QSvgTinyDocument;
200};
201
203{
204 return m_parent;
205}
206
207inline bool QSvgNode::isVisible() const
208{
209 return m_visible;
210}
211
213{
214 return m_id;
215}
216
218{
219 return m_class;
220}
221
223
224#endif // QSVGNODE_P_H
\inmodule QtGui
Definition qimage.h:37
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
@ TableCaptionMode
Definition qsvgnode_p.h:83
@ TableColumnMode
Definition qsvgnode_p.h:81
@ TableRowMode
Definition qsvgnode_p.h:79
@ TableColumnGroupMode
Definition qsvgnode_p.h:80
@ TableCellMode
Definition qsvgnode_p.h:82
@ CompactMode
Definition qsvgnode_p.h:72
@ TableRowGroupMode
Definition qsvgnode_p.h:76
@ TableHeaderGroupMode
Definition qsvgnode_p.h:77
@ InlineTableMode
Definition qsvgnode_p.h:75
@ TableFooterGroupMode
Definition qsvgnode_p.h:78
@ ListItemMode
Definition qsvgnode_p.h:70
virtual bool separateFillStroke() const
Definition qsvgnode_p.h:92
QString xmlClass() const
Definition qsvgnode_p.h:217
QSvgNode * parent() const
Definition qsvgnode_p.h:202
@ FeComposite
Definition qsvgnode_p.h:63
@ FeMergenode
Definition qsvgnode_p.h:59
@ FeGaussianblur
Definition qsvgnode_p.h:61
@ FeColormatrix
Definition qsvgnode_p.h:60
QSvgStyle m_style
Definition qsvgnode_p.h:171
QString nodeId() const
Definition qsvgnode_p.h:212
const QSvgStyle & style() const
Definition qsvgnode_p.h:169
bool isVisible() const
Definition qsvgnode_p.h:207
virtual Type type() const =0
virtual void drawCommand(QPainter *p, QSvgExtraStates &states)=0
QString str
[2]
struct wl_display * display
Definition linuxdmabuf.h:41
Combined button and popup list for selecting options.
const char * typeName
GLenum type
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLfloat GLfloat p
[1]
GLuint * states
double qreal
Definition qtypes.h:187
edit isVisible()
myFilter draw(painter, QPoint(0, 0), originalPixmap)
QNetworkProxy proxy
[0]
Definition moc.h:23