46 QSGInternalTextNode(QSGRenderContext *renderContext);
47 ~QSGInternalTextNode();
49 static bool isComplexRichText(QTextDocument *);
51 void setColor(QColor color) override
56 QColor color()
const override
61 void setTextStyle(TextStyle textStyle) override
63 m_textStyle = textStyle;
66 TextStyle textStyle() override
71 void setStyleColor(QColor styleColor) override
73 m_styleColor = styleColor;
76 QColor styleColor()
const override
81 void setLinkColor(QColor linkColor) override
83 m_linkColor = linkColor;
86 QColor linkColor()
const override
91 void setSelectionColor(QColor selectionColor) override
93 m_selectionColor = selectionColor;
96 QColor selectionColor()
const override
98 return m_selectionColor;
101 void setSelectionTextColor(QColor selectionTextColor) override
103 m_selectionTextColor = selectionTextColor;
106 QColor selectionTextColor()
const override
108 return m_selectionTextColor;
111 void setRenderTypeQuality(
int renderTypeQuality) override
113 m_renderTypeQuality = renderTypeQuality;
115 int renderTypeQuality()
const override
117 return m_renderTypeQuality;
120 void setRenderType(RenderType renderType) override
122 m_renderType = renderType;
125 RenderType renderType()
const override
130 bool containsUnscalableGlyphs()
const
132 return m_containsUnscalableGlyphs;
135 void setFiltering(QSGTexture::Filtering filtering) override
137 m_filtering = filtering;
140 QSGTexture::Filtering filtering()
const override
145 void setViewport(
const QRectF &viewport) override
147 m_viewport = viewport;
150 QRectF viewport()
const override
155 void setDevicePixelRatio(qreal dpr)
157 m_devicePixelRatio = dpr;
160 void setCursor(
const QRectF &rect,
const QColor &color);
163 void addRectangleNode(
const QRectF &rect,
const QColor &color);
164 virtual void addDecorationNode(
const QRectF &rect,
const QColor &color);
165 void addImage(
const QRectF &rect,
const QImage &image);
166 void clear() override;
167 QSGGlyphNode *addGlyphs(
const QPointF &position,
const QGlyphRun &glyphs,
const QColor &color,
168 QQuickText::TextStyle style = QQuickText::Normal,
const QColor &styleColor = QColor(),
169 QSGNode *parentNode = 0);
171 QSGInternalRectangleNode *cursorNode()
const {
return m_cursorNode; }
172 std::pair<
int,
int> renderedLineRange()
const {
return { m_firstLineInViewport, m_firstLinePastViewport }; }
175 void doAddTextLayout(QPointF position,
176 QTextLayout *textLayout,
180 int lineCount) override;
182 void doAddTextDocument(QPointF position,
183 QTextDocument *textDocument,
185 int selectionEnd) override;
188 QSGInternalRectangleNode *m_cursorNode =
nullptr;
189 QList<QSGTexture *> m_textures;
190 QSGRenderContext *m_renderContext =
nullptr;
191 RenderType m_renderType = QtRendering;
192 TextStyle m_textStyle = Normal;
194 QColor m_color = QColor(0, 0, 0);
195 QColor m_styleColor = QColor(0, 0, 0);
196 QColor m_linkColor = QColor(0, 0, 255);
197 QColor m_selectionColor = QColor(0, 0, 128);
198 QColor m_selectionTextColor = QColor(255, 255, 255);
199 QSGTexture::Filtering m_filtering = QSGTexture::Nearest;
200 int m_renderTypeQuality = -1;
201 int m_firstLineInViewport = -1;
202 int m_firstLinePastViewport = -1;
203 bool m_containsUnscalableGlyphs =
false;
204 qreal m_devicePixelRatio = 1.0;
206 friend class QQuickTextEdit;
207 friend class QQuickTextEditPrivate;
#define QQUICKTEXT_LARGETEXT_THRESHOLD
static void getLinks_helper(const QTextLayout *layout, QVector< QQuickTextPrivate::LinkDesc > *links)