35 Q_DECLARE_PUBLIC(QQuickText)
41 void updateBaseline(qreal baseline, qreal dy);
43 void signalSizeChange(
const QSizeF &previousSize);
45 void scheduleUpdatePaintNode();
46 bool determineHorizontalAlignment();
47 bool setHAlign(QQuickText::HAlignment,
bool forceAlign =
false);
48 void mirrorChange() override;
49 bool isLineLaidOutConnected();
50 void setLineGeometry(QTextLine &line, qreal lineWidth, qreal &height);
51 void positionInlineImages(
const QTextLine &line,
const QList<QTextLayout::FormatRange> &formats);
53 int lineHeightOffset()
const;
54 QString elidedText(qreal lineWidth,
const QTextLine &line)
const;
55 void elideFormats(
int start,
int length,
int offset, QList<QTextLayout::FormatRange> *elidedFormats);
58 void processHoverEvent(QHoverEvent *event);
59 bool transformChanged(QQuickItem *transformedItem) override;
61 QRectF layedOutTextRect;
72 bool explicitTopPadding : 1;
73 bool explicitLeftPadding : 1;
74 bool explicitRightPadding : 1;
75 bool explicitBottomPadding : 1;
78 QQuickTextImageHandler *imageHandler =
nullptr;
81 QString hoveredToolTip;
85 int renderTypeQuality;
86 bool lineHeightValid : 1;
87 QQuickText::LineHeightMode lineHeightMode;
88 QQuickText::FontSizeMode fontSizeMode;
89 QList<QQuickStyledTextImgTag*> imgTags;
90 QList<QQuickStyledTextImgTag*> visibleImgTags;
91 QList<QQuickPixmap *> pixmapsInProgress;
94 QLazilyAllocated<ExtraData> extra;
102 QScopedPointer<QTextLayout> elideLayout;
103 QScopedPointer<QQuickTextLine> textLine;
120 QQuickText::TextElideMode elideMode;
121 QQuickText::HAlignment hAlign;
122 QQuickText::VAlignment vAlign;
123 QQuickText::TextFormat format;
124 QQuickText::WrapMode wrapMode;
125 QQuickText::TextStyle style;
126 QQuickText::RenderType renderType;
127 UpdateType updateType;
129 QString assignedFont;
131 bool maximumLineCountValid:1;
132 bool updateOnComponentComplete:1;
136 bool widthExceeded:1;
137 bool heightExceeded:1;
138 bool internalWidthUpdate:1;
139 bool requireImplicitSize:1;
140 bool implicitWidthValid:1;
141 bool implicitHeightValid:1;
143 bool hAlignImplicit:1;
144 bool rightToLeftText:1;
145 bool layoutTextElided:1;
146 bool textHasChanged:1;
147 bool needToUpdateLayout:1;
148 bool formatModifiesFontSize:1;
150 bool updateSizeRecursionGuard:1;
151 bool containsUnscalableGlyphs:1;
153 static const QChar elideChar;
154 static const int largeTextSizeThreshold;
156 qreal getImplicitWidth()
const override;
157 qreal getImplicitHeight()
const override;
159 qreal availableWidth()
const;
160 qreal availableHeight()
const;
162 inline qreal padding()
const {
return extra.isAllocated() ? extra->padding : 0.0; }
163 void setTopPadding(qreal value,
bool reset =
false);
164 void setLeftPadding(qreal value,
bool reset =
false);
165 void setRightPadding(qreal value,
bool reset =
false);
166 void setBottomPadding(qreal value,
bool reset =
false);
169 void updateDocumentText();
171 QRectF setupTextLayout(qreal *
const baseline);
172 void setupCustomLineGeometry(QTextLine &line, qreal &height,
int fullLayoutTextLength,
int lineOffset = 0);
173 bool isLinkActivatedConnected();
174 bool isLinkHoveredConnected();
175 bool isHoveredToolTipChangedConnected();
176 QStringList links()
const;
180 QString m_anchorTarget;
186 QList<LinkDesc> getLinks()
const;
188 static QString anchorAt(
const QTextLayout *layout,
const QPointF &mousePos);
189 QString anchorAt(
const QPointF &pos)
const;
190 static QString toolTipAt(
const QTextLayout *layout,
const QPointF &mousePos);
191 QString toolTipAt(
const QPointF &pos)
const;
193 inline qreal lineHeight()
const {
return extra.isAllocated() ? extra->lineHeight : 1.0; }
194 inline int maximumLineCount()
const {
return extra.isAllocated() ? extra->maximumLineCount : INT_MAX; }
195 inline int renderTypeQuality()
const {
return extra.isAllocated() ? extra->renderTypeQuality : QQuickText::DefaultRenderTypeQuality; }
196 inline QQuickText::LineHeightMode lineHeightMode()
const {
return extra.isAllocated() ? extra->lineHeightMode : QQuickText::ProportionalHeight; }
197 inline QQuickText::FontSizeMode fontSizeMode()
const {
return extra.isAllocated() ? extra->fontSizeMode : QQuickText::FixedSize; }
198 inline int minimumPixelSize()
const {
return extra.isAllocated() ? extra->minimumPixelSize : 12; }
199 inline int minimumPointSize()
const {
return extra.isAllocated() ? extra->minimumPointSize : 12; }
200 static inline QQuickTextPrivate *get(QQuickText *t) {
return t->d_func(); }
#define QQUICKTEXT_LARGETEXT_THRESHOLD
static void positionInlineImage(QQuickStyledTextImgTag *image, int textPos, const QTextLine &line)
static void getLinks_helper(const QTextLayout *layout, QList< QQuickTextPrivate::LinkDesc > *links)