<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/quick/items/qquicktextnodeengine.cpp, branch dev</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Recycle glyph nodes in certain cases</title>
<updated>2026-06-05T13:29:23+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2026-04-10T12:09:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=dcfea2fc3f1e0ea946d2d606bb97dc64439bd8d1'/>
<id>dcfea2fc3f1e0ea946d2d606bb97dc64439bd8d1</id>
<content type='text'>
Removing and adding nodes to the root batch can cause reuploads, which
can be expensive. Updating text would always remove all glyph nodes and
add new ones, which meant any text update could cause the reupload.

This recycles nodes for the common cases. Complex cases where you have
selections or where the text is split into subnodes will still cause
removal. The main idea is to optimize for the case where you are
replacing a simple text with another simple text, such as in a counter
or sensor output.

Note: With the software backend we never mark the node as dirty, so
we depended on the NodeAdded flag to handle it correctly. We don't
want to call markDirty() for all setters since each call triggers
the updater directly. So instead, we mark the node as recycled and
then mark it as dirty in the update() function which is called after
all the properties have been set.

Pick-to: 6.12
Fixes: QTBUG-117901
Change-Id: I3fd736aa1b3263082d54fcd8e06a1cebcb020ff3
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removing and adding nodes to the root batch can cause reuploads, which
can be expensive. Updating text would always remove all glyph nodes and
add new ones, which meant any text update could cause the reupload.

This recycles nodes for the common cases. Complex cases where you have
selections or where the text is split into subnodes will still cause
removal. The main idea is to optimize for the case where you are
replacing a simple text with another simple text, such as in a counter
or sensor output.

Note: With the software backend we never mark the node as dirty, so
we depended on the NodeAdded flag to handle it correctly. We don't
want to call markDirty() for all setters since each call triggers
the updater directly. So instead, we mark the node as recycled and
then mark it as dirty in the update() function which is called after
all the properties have been set.

Pick-to: 6.12
Fixes: QTBUG-117901
Change-Id: I3fd736aa1b3263082d54fcd8e06a1cebcb020ff3
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>TextEdit: don't extend anchor underline through tab characters</title>
<updated>2026-05-18T15:50:19+00:00</updated>
<author>
<name>Raman Shamotsin</name>
<email>rumgot@gmail.com</email>
</author>
<published>2026-05-07T19:52:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=879eee28f7578462680c8fc66f30463af0053fd5'/>
<id>879eee28f7578462680c8fc66f30463af0053fd5</id>
<content type='text'>
Tab characters do not produce glyph runs (they are skipped in
QTextLine::glyphRuns()). When QQuickTextNodeEngine::processCurrentLine()
iterates glyph run nodes to draw text decorations, it unconditionally
extends the decoration rect from the last decorated node to the left
edge of the next node. Since the tab has no glyph run of its own, the
underline from an anchor is extended across the entire tab gap to the
next visible glyph run, even though that run is outside the anchor.

Fix this by only extending the decoration rect to the next node when
the next node continues the same decoration, or when it is directly
adjacent (no gap). This preserves underline through tabs inside an
anchor while preventing it from bleeding through tabs outside.

Fixes: QTBUG-146648
Pick-to: 6.11
Change-Id: Icf8dc088dfb021e928b25ba07de3d57331e55ff8
Reviewed-by: Vladimir Belyavsky &lt;belyavskyv@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tab characters do not produce glyph runs (they are skipped in
QTextLine::glyphRuns()). When QQuickTextNodeEngine::processCurrentLine()
iterates glyph run nodes to draw text decorations, it unconditionally
extends the decoration rect from the last decorated node to the left
edge of the next node. Since the tab has no glyph run of its own, the
underline from an anchor is extended across the entire tab gap to the
next visible glyph run, even though that run is outside the anchor.

Fix this by only extending the decoration rect to the next node when
the next node continues the same decoration, or when it is directly
adjacent (no gap). This preserves underline through tabs inside an
anchor while preventing it from bleeding through tabs outside.

Fixes: QTBUG-146648
Pick-to: 6.11
Change-Id: Icf8dc088dfb021e928b25ba07de3d57331e55ff8
Reviewed-by: Vladimir Belyavsky &lt;belyavskyv@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>TextEdit: Deduplicate range overlap logic</title>
<updated>2026-04-14T20:18:11+00:00</updated>
<author>
<name>Vladimir Belyavsky</name>
<email>belyavskyv@gmail.com</email>
</author>
<published>2026-04-11T19:38:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8eae6a74753b534aa4bb36f3cdda94aeaada7b00'/>
<id>8eae6a74753b534aa4bb36f3cdda94aeaada7b00</id>
<content type='text'>
Extract the repeated range overlap subtraction loop into
a local lambda (subtractOverlap). The same logic was
duplicated for previousNode and nextNode in
addToSceneGraph().

This is a pure refactor with no behavior change.
Follow-up to 4457005d2be638fe84c9b1fc52f88ee65c64044e.

Change-Id: I7d56a6027715ce00c5556889e71740b4fd297ac6
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
Reviewed-by: Yauheni Pervenenka &lt;yauheni.pervenenka@viber.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extract the repeated range overlap subtraction loop into
a local lambda (subtractOverlap). The same logic was
duplicated for previousNode and nextNode in
addToSceneGraph().

This is a pure refactor with no behavior change.
Follow-up to 4457005d2be638fe84c9b1fc52f88ee65c64044e.

Change-Id: I7d56a6027715ce00c5556889e71740b4fd297ac6
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
Reviewed-by: Yauheni Pervenenka &lt;yauheni.pervenenka@viber.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>TextEdit: Fix selectedTextColor for partial selections in list items</title>
<updated>2026-04-13T15:28:44+00:00</updated>
<author>
<name>Evgen Pervenenka</name>
<email>yauheni.pervenenka@viber.com</email>
</author>
<published>2026-04-11T12:21:19+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4457005d2be638fe84c9b1fc52f88ee65c64044e'/>
<id>4457005d2be638fe84c9b1fc52f88ee65c64044e</id>
<content type='text'>
The overlap optimization in addToSceneGraph() compared text ranges
between adjacent nodes to avoid double-drawing glyphs. However, list
item bullets are rendered via a separate QTextLayout with a different
position but coincidentally overlapping text ranges (both starting
from 0). This caused the overlap check to incorrectly conclude that
the bullet's glyph run covered the selected text's glyph run, setting
drawCurrent to false and skipping the redraw with selectedTextColor.

Fix by adding a position check to the overlap comparison: only
consider adjacent nodes for overlap if they share the same position,
which indicates they originate from the same QTextLayout.

Fixes: QTBUG-139469
Pick-to: 6.11
Change-Id: Ifa93b427a25b9e0285499f9bdd1eb9c6389f6fc4
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
Reviewed-by: Vladimir Belyavsky &lt;belyavskyv@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The overlap optimization in addToSceneGraph() compared text ranges
between adjacent nodes to avoid double-drawing glyphs. However, list
item bullets are rendered via a separate QTextLayout with a different
position but coincidentally overlapping text ranges (both starting
from 0). This caused the overlap check to incorrectly conclude that
the bullet's glyph run covered the selected text's glyph run, setting
drawCurrent to false and skipping the redraw with selectedTextColor.

Fix by adding a position check to the overlap comparison: only
consider adjacent nodes for overlap if they share the same position,
which indicates they originate from the same QTextLayout.

Fixes: QTBUG-139469
Pick-to: 6.11
Change-Id: Ifa93b427a25b9e0285499f9bdd1eb9c6389f6fc4
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
Reviewed-by: Vladimir Belyavsky &lt;belyavskyv@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Text: Support all QTextCharFormat::UnderlineStyle in Qt Quick</title>
<updated>2026-04-11T16:05:51+00:00</updated>
<author>
<name>Vladimir Belyavsky</name>
<email>belyavskyv@gmail.com</email>
</author>
<published>2026-03-30T08:34:40+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e44e7f61c843d4fb90a74974e08c6fafa01e7053'/>
<id>e44e7f61c843d4fb90a74974e08c6fafa01e7053</id>
<content type='text'>
Implement rendering of all underline styles (DashUnderline, DotLine,
DashDotLine, DashDotDotLine, WaveUnderline, SpellCheckUnderline) in
the Qt Quick text rendering pipeline. Previously, all underline styles
were rendered as solid rectangles (SingleUnderline).

The styled underlines are rendered via QSGCurveStrokeNode in the RHI
renderer. The software renderer does not support styled underlines and
falls back to SingleUnderline (solid rectangle) for all styles.

SingleUnderline remains a solid rectangle for backward compatibility.
For the RHI renderer, dashed/dotted styles are built as QQuadPath
segments, and wave underlines use quadratic Bezier curves adapted from
QPainter's generateWavyPixmap(). SpellCheckUnderline is resolved to
the platform-specific style via QPlatformTheme.

Changes:
- Extended TextDecoration and BinaryTreeNode with underlineStyle field
- Extended addDecorationNode() with UnderlineStyle parameter
- Implemented style-aware rendering in the RHI renderer using
  QSpan&lt;const qreal&gt; for dash pattern references
- Updated QQuickTextNodeEngine to extract and propagate underlineStyle
  from QTextCharFormat through the full pipeline
- Added merging of adjacent underline ranges for continuous patterns
- Updated mergeFormats() and addTextBlock() to pass underline styles
  from IME (QInputMethodEvent) and QSyntaxHighlighter
- Extended the existing tests/manual/syntaxhighlighter example with
  all underline styles for visual verification

[ChangeLog][QtQuick][Text] Added support for all QTextCharFormat
underline styles (DashUnderline, DotLine, DashDotLine, DashDotDotLine,
WaveUnderline, SpellCheckUnderline) and underline colors in Text,
TextEdit and TextInput elements when using the RHI renderer. The
software renderer falls back to SingleUnderline for all styles. This
enables proper rendering of IME composition indicators, spell-check
underlines, and syntax highlighter underline styles in Qt Quick.

Fixes: QTBUG-39617
Fixes: QTBUG-46540
Fixes: QTBUG-97495
Fixes: QTBUG-125575
Change-Id: I1b152b031b697e0aab3a9736c17d3c04a27a6965
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement rendering of all underline styles (DashUnderline, DotLine,
DashDotLine, DashDotDotLine, WaveUnderline, SpellCheckUnderline) in
the Qt Quick text rendering pipeline. Previously, all underline styles
were rendered as solid rectangles (SingleUnderline).

The styled underlines are rendered via QSGCurveStrokeNode in the RHI
renderer. The software renderer does not support styled underlines and
falls back to SingleUnderline (solid rectangle) for all styles.

SingleUnderline remains a solid rectangle for backward compatibility.
For the RHI renderer, dashed/dotted styles are built as QQuadPath
segments, and wave underlines use quadratic Bezier curves adapted from
QPainter's generateWavyPixmap(). SpellCheckUnderline is resolved to
the platform-specific style via QPlatformTheme.

Changes:
- Extended TextDecoration and BinaryTreeNode with underlineStyle field
- Extended addDecorationNode() with UnderlineStyle parameter
- Implemented style-aware rendering in the RHI renderer using
  QSpan&lt;const qreal&gt; for dash pattern references
- Updated QQuickTextNodeEngine to extract and propagate underlineStyle
  from QTextCharFormat through the full pipeline
- Added merging of adjacent underline ranges for continuous patterns
- Updated mergeFormats() and addTextBlock() to pass underline styles
  from IME (QInputMethodEvent) and QSyntaxHighlighter
- Extended the existing tests/manual/syntaxhighlighter example with
  all underline styles for visual verification

[ChangeLog][QtQuick][Text] Added support for all QTextCharFormat
underline styles (DashUnderline, DotLine, DashDotLine, DashDotDotLine,
WaveUnderline, SpellCheckUnderline) and underline colors in Text,
TextEdit and TextInput elements when using the RHI renderer. The
software renderer falls back to SingleUnderline for all styles. This
enables proper rendering of IME composition indicators, spell-check
underlines, and syntax highlighter underline styles in Qt Quick.

Fixes: QTBUG-39617
Fixes: QTBUG-46540
Fixes: QTBUG-97495
Fixes: QTBUG-125575
Change-Id: I1b152b031b697e0aab3a9736c17d3c04a27a6965
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use QFontMetricsF for AlignBaseline inline object positioning</title>
<updated>2026-04-11T05:59:52+00:00</updated>
<author>
<name>Jarkko Koivikko</name>
<email>jarkko.koivikko@code-q.fi</email>
</author>
<published>2026-04-09T18:49:30+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=f87deba51814bceb130880038ca0fe84b88a06a2'/>
<id>f87deba51814bceb130880038ca0fe84b88a06a2</id>
<content type='text'>
QFontMetrics rounds descent to integer, while QTextLine::descent()
returns a fractional value from QFixed. This mismatch can cause a
1px positioning error for AlignBaseline inline objects.

Use QFontMetricsF to preserve fractional precision, matching the
corresponding qtbase change in resizeInlineObject.

Pick-to: 6.11
Task-number: QTBUG-145731
Change-Id: I0904afca8c5e21cc8c8bad204052fae4d3c5a61f
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
QFontMetrics rounds descent to integer, while QTextLine::descent()
returns a fractional value from QFixed. This mismatch can cause a
1px positioning error for AlignBaseline inline objects.

Use QFontMetricsF to preserve fractional precision, matching the
corresponding qtbase change in resizeInlineObject.

Pick-to: 6.11
Task-number: QTBUG-145731
Change-Id: I0904afca8c5e21cc8c8bad204052fae4d3c5a61f
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQuickTextNodeEngine: fix AlignBaseline positioning for inline objects</title>
<updated>2026-03-16T18:01:25+00:00</updated>
<author>
<name>Jarkko Koivikko</name>
<email>jarkko.koivikko@code-q.fi</email>
</author>
<published>2026-02-20T10:58:37+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8cdbd1990fb75057629335058683623068210ce3'/>
<id>8cdbd1990fb75057629335058683623068210ce3</id>
<content type='text'>
AlignBaseline was falling through to the default branch in
QQuickTextNodeEngine::addTextObject(), effectively treating
the object as having zero descent. This caused the rendered
position to be shifted upward by line.descent() pixels
compared to where layout placed it.

This was introduced by qtbase commit 99c1465215
("QTextDocument: repair AlignBaseline for inline objects"),
which added explicit AlignBaseline handling to the layout side
(QTextDocumentLayout::resizeInlineObject) without a
corresponding update to the rendering side in qtdeclarative.

Before that change, both layout and rendering fell through to
the default branch for AlignBaseline, treating descent as zero.
After that change, layout sets descent to font descent:

    item.setDescent(m.descent());
    item.setAscent(inlineSize.height() - descent);

But rendering still fell through to default
(ascent = size.height(), i.e. zero descent).

Add a dedicated AlignBaseline case that uses font metrics from
the format (ascent = size.height() - QFontMetrics(format.font()).descent()),
matching the layout side. This differs from AlignBottom which
uses line.descent(), since in mixed-font-size lines the font
descent and line descent can differ.

Pick-to: 6.8 6.9 6.10 6.11
Fixes: QTBUG-144977
Change-Id: I4684e714ec8e8e3f3406fd73ff517b1bbb497628
Reviewed-by: David Faure &lt;david.faure@kdab.com&gt;
Reviewed-by: Jarkko Koivikko &lt;jarkko.koivikko@code-q.fi&gt;
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AlignBaseline was falling through to the default branch in
QQuickTextNodeEngine::addTextObject(), effectively treating
the object as having zero descent. This caused the rendered
position to be shifted upward by line.descent() pixels
compared to where layout placed it.

This was introduced by qtbase commit 99c1465215
("QTextDocument: repair AlignBaseline for inline objects"),
which added explicit AlignBaseline handling to the layout side
(QTextDocumentLayout::resizeInlineObject) without a
corresponding update to the rendering side in qtdeclarative.

Before that change, both layout and rendering fell through to
the default branch for AlignBaseline, treating descent as zero.
After that change, layout sets descent to font descent:

    item.setDescent(m.descent());
    item.setAscent(inlineSize.height() - descent);

But rendering still fell through to default
(ascent = size.height(), i.e. zero descent).

Add a dedicated AlignBaseline case that uses font metrics from
the format (ascent = size.height() - QFontMetrics(format.font()).descent()),
matching the layout side. This differs from AlignBottom which
uses line.descent(), since in mixed-font-size lines the font
descent and line descent can differ.

Pick-to: 6.8 6.9 6.10 6.11
Fixes: QTBUG-144977
Change-Id: I4684e714ec8e8e3f3406fd73ff517b1bbb497628
Reviewed-by: David Faure &lt;david.faure@kdab.com&gt;
Reviewed-by: Jarkko Koivikko &lt;jarkko.koivikko@code-q.fi&gt;
Reviewed-by: Eskil Abrahamsen Blomfeldt &lt;eskil.abrahamsen-blomfeldt@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qquicktextnodeengine: use range for more</title>
<updated>2026-01-28T14:06:23+00:00</updated>
<author>
<name>Anton Kudryavtsev</name>
<email>anton.kudryavtsev@vk.team</email>
</author>
<published>2026-01-20T10:47:13+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1b09cad95e5d150c743a561db4d548a7df8e7a31'/>
<id>1b09cad95e5d150c743a561db4d548a7df8e7a31</id>
<content type='text'>
Change-Id: I15fe697e1e78f139904d915d46cd394c06d7a663
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I15fe697e1e78f139904d915d46cd394c06d7a663
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace QVector with QList</title>
<updated>2026-01-09T19:44:46+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2026-01-08T18:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=941445ba18c8003948dc9bb9e257114ca13e12fb'/>
<id>941445ba18c8003948dc9bb9e257114ca13e12fb</id>
<content type='text'>
Since QVector is just an alias, let's finally do what we could have
done for Qt 6.0.

Pick-to: 6.11
Change-Id: Ia9dbc8ecf4f099339cf7639acb22c14b24fa680b
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since QVector is just an alias, let's finally do what we could have
done for Qt 6.0.

Pick-to: 6.11
Change-Id: Ia9dbc8ecf4f099339cf7639acb22c14b24fa680b
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rich text: Limit size of text object</title>
<updated>2025-10-31T16:16:15+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2025-10-31T08:08:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=144ce34e846b3f732bdb003f99b1f9455425416f'/>
<id>144ce34e846b3f732bdb003f99b1f9455425416f</id>
<content type='text'>
When we draw a text object, we need to store this in RAM
since the QTextObjectInterface is QPainter-based. This
could lead to over-allocation if the text object size
was set to be very large. We use the existing image IO
infrastructure for making sure allocations are within
reasonable (and configurable) limits.

Pick-to: 5.15 6.5 6.8 6.10
Task-number: QTBUG-141515
Change-Id: Ieae06a9e92a7bd078d22ab2314889201c2049122
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we draw a text object, we need to store this in RAM
since the QTextObjectInterface is QPainter-based. This
could lead to over-allocation if the text object size
was set to be very large. We use the existing image IO
infrastructure for making sure allocations are within
reasonable (and configurable) limits.

Pick-to: 5.15 6.5 6.8 6.10
Task-number: QTBUG-141515
Change-Id: Ieae06a9e92a7bd078d22ab2314889201c2049122
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
