<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git, 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>qmldom: Visit call optional token instead of its lparen twice</title>
<updated>2026-10-02T20:09:25+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-09-26T10:01:04+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2d2eb7860fc47850910bdfc80732d92098ddff16'/>
<id>2d2eb7860fc47850910bdfc80732d92098ddff16</id>
<content type='text'>
Amends ae6dfc63668556e89057edb1b83de28d7554c5ef

Task-number: QTBUG-151040
Pick-to: 6.12
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: I438ca1b8e2de4fc05769f2d627c3d7edaefe94a0
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Amends ae6dfc63668556e89057edb1b83de28d7554c5ef

Task-number: QTBUG-151040
Pick-to: 6.12
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: I438ca1b8e2de4fc05769f2d627c3d7edaefe94a0
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQmlJSUtils: Accept a relative path in qmlSourcePathFromBuildPath()</title>
<updated>2026-10-02T15:36:15+00:00</updated>
<author>
<name>Jeff Heller</name>
<email>jeffrey_heller@yahoo.com</email>
</author>
<published>2026-10-01T19:48:01+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=861a8762665baffc6b739704194d5a47e4110c71'/>
<id>861a8762665baffc6b739704194d5a47e4110c71</id>
<content type='text'>
qmlSourcePathFromBuildPath() found the module through a clean absolute
form of the path, then cut the module's absolute directory off the path
as passed in. qmllint passes the linted file's path as given on its
command line, so linting a build-folder copy by a relative path with
--resource read past the end of the string and crashed, for example:

    cd build &amp;&amp; qmllint --resource .qt/rcc/qmake_Mod.qrc \
        --resource .qt/rcc/Mod_raw_qml_0.qrc Mod/Main.qml

Cut the module directory off the clean absolute path instead.

Pick-to: 6.12
Assisted-by: Claude Code
Change-Id: I92c078e7c45274b1eeb61c648d64514430cee817
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
qmlSourcePathFromBuildPath() found the module through a clean absolute
form of the path, then cut the module's absolute directory off the path
as passed in. qmllint passes the linted file's path as given on its
command line, so linting a build-folder copy by a relative path with
--resource read past the end of the string and crashed, for example:

    cd build &amp;&amp; qmllint --resource .qt/rcc/qmake_Mod.qrc \
        --resource .qt/rcc/Mod_raw_qml_0.qrc Mod/Main.qml

Cut the module directory off the clean absolute path instead.

Pick-to: 6.12
Assisted-by: Claude Code
Change-Id: I92c078e7c45274b1eeb61c648d64514430cee817
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: Remove unused includes from dom/format tests</title>
<updated>2026-10-02T11:22:46+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-10-01T09:08:12+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bac9da45c9ec7927bde3b0a2b4dc7ed1fc3f032e'/>
<id>bac9da45c9ec7927bde3b0a2b4dc7ed1fc3f032e</id>
<content type='text'>
Task-number: QTBUG-151040
Change-Id: I899b2c662e4de5bfe3f4db5af608dfb4a4ddcc93
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-151040
Change-Id: I899b2c662e4de5bfe3f4db5af608dfb4a4ddcc93
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmldom: Make --reformat reformat something</title>
<updated>2026-10-02T11:22:43+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-09-30T07:31:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3aa66f7d3601b2222d6042c812c5054463ac4e0a'/>
<id>3aa66f7d3601b2222d6042c812c5054463ac4e0a</id>
<content type='text'>
It turned every file down. Two mistakes, each enough on its own.

What loadFile() hands its callback is the metadata about the file, of
which the file itself is a field, so the check that what was loaded is a
QmlFile was asking the metadata, which is an ExternalItemInfo and never
a QmlFile. Ask the file, the way the option that dumps the syntax tree
already does.

The index the loaded files are put at was never advanced, so every file
after the first was dropped and the slots they should have gone in
stayed empty. An empty slot is not a QmlFile either, which is the other
way the same message came out.

With both fixed it writes what qmlformat writes: --reformat over a file
gives what qmlformat --normalize gives, byte for byte, since the dom
writes the script of a file through the same formatter and the options
it reformats with are the normalising ones.

Amends 4cfb323389363bf12f84044b8c7501ef2f0441b9

Task-number: QTBUG-151040
Pick-to: 6.12 6.8
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: Ibb38e0f422ebdf8991dbbc45208acbc1e4abf036
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It turned every file down. Two mistakes, each enough on its own.

What loadFile() hands its callback is the metadata about the file, of
which the file itself is a field, so the check that what was loaded is a
QmlFile was asking the metadata, which is an ExternalItemInfo and never
a QmlFile. Ask the file, the way the option that dumps the syntax tree
already does.

The index the loaded files are put at was never advanced, so every file
after the first was dropped and the slots they should have gone in
stayed empty. An empty slot is not a QmlFile either, which is the other
way the same message came out.

With both fixed it writes what qmlformat writes: --reformat over a file
gives what qmlformat --normalize gives, byte for byte, since the dom
writes the script of a file through the same formatter and the options
it reformats with are the normalising ones.

Amends 4cfb323389363bf12f84044b8c7501ef2f0441b9

Task-number: QTBUG-151040
Pick-to: 6.12 6.8
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: Ibb38e0f422ebdf8991dbbc45208acbc1e4abf036
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Support negative radius for inverted corners on PathRectangle</title>
<updated>2026-10-02T07:00:24+00:00</updated>
<author>
<name>Xavier BESSON</name>
<email>developer@xavi-b.fr</email>
</author>
<published>2026-07-26T15:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=63c1bcf809d438711ecd484b3c679a4bcd9bc84a'/>
<id>63c1bcf809d438711ecd484b3c679a4bcd9bc84a</id>
<content type='text'>
A negative radius (or per-corner radius) now produces a concave,
"inverted" corner instead of the usual convex one, for both the Rounded
and Squircle corner shapes.

Change-Id: I258871293d7c42ea890692ad3c6ce17253312480
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A negative radius (or per-corner radius) now produces a concave,
"inverted" corner instead of the usual convex one, for both the Rounded
and Squircle corner shapes.

Change-Id: I258871293d7c42ea890692ad3c6ce17253312480
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ohos: Avoid mouse move exactly on item edge in tst_cursor</title>
<updated>2026-10-01T19:52:54+00:00</updated>
<author>
<name>SanthoshKumar Selvaraj</name>
<email>santhosh.kumar.selvaraj@qt.io</email>
</author>
<published>2026-09-15T15:31:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=cac8a85c1c4aa77c70ec14cf4323fcf4e2c81f45'/>
<id>cac8a85c1c4aa77c70ec14cf4323fcf4e2c81f45</id>
<content type='text'>
controls() and pageIndicator() moved the mouse to the exact (0, 0)
edge of the control under test. QQuickItem::contains() treats bounds
as (x &gt;= 0 &amp;&amp; x &lt; width), so a position of QPoint(0, 0) has no margin
for error.

On platforms with a non-integer device pixel ratio (e.g. OHOS, DPR 1.9)
such a position is not delivered exactly. QTest::mouseMove() passes
device-independent coordinates, qt_handleMouseEvent() converts them to
native coordinates, and QWindowSystemInterface::handleMouseEvent()
converts them back by multiplying with scale factor (1/sf). For this
scale factor that round trip is not an exact inverse, so a move
requested at exactly (0, 0) can be delivered a fraction outside the
item.

Move the probe points from (0, 0) to (1, 1), so that the mouse
position lands on the control regardless of the sub-pixel rounding
error.

Fixes: QTBUG-150331
Pick-to: 6.12
Change-Id: I43e15558dc18636f60dd7a70a062c60a3fc17dd4
Reviewed-by: Liang Qi &lt;liang.qi@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
controls() and pageIndicator() moved the mouse to the exact (0, 0)
edge of the control under test. QQuickItem::contains() treats bounds
as (x &gt;= 0 &amp;&amp; x &lt; width), so a position of QPoint(0, 0) has no margin
for error.

On platforms with a non-integer device pixel ratio (e.g. OHOS, DPR 1.9)
such a position is not delivered exactly. QTest::mouseMove() passes
device-independent coordinates, qt_handleMouseEvent() converts them to
native coordinates, and QWindowSystemInterface::handleMouseEvent()
converts them back by multiplying with scale factor (1/sf). For this
scale factor that round trip is not an exact inverse, so a move
requested at exactly (0, 0) can be delivered a fraction outside the
item.

Move the probe points from (0, 0) to (1, 1), so that the mouse
position lands on the control regardless of the sub-pixel rounding
error.

Fixes: QTBUG-150331
Pick-to: 6.12
Change-Id: I43e15558dc18636f60dd7a70a062c60a3fc17dd4
Reviewed-by: Liang Qi &lt;liang.qi@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmlformat: Don't add extra commas to holed arrays</title>
<updated>2026-10-01T16:09:38+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-09-30T08:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=31d3946adb7ed34bf89eaf0843ceef00c7ad71f5'/>
<id>31d3946adb7ed34bf89eaf0843ceef00c7ad71f5</id>
<content type='text'>
`[1, 2, 3, 4, , ,]` is parsed with the comma that comes before the
trailing holes stored on two different nodes: on the ArrayPattern, and
on the list element that wraps those holes. The formatter wrote both, so
every pass over the file appended another hole to the array. That
changes the semantics of the expression.

Store the comma on the ArrayPattern only if it isn't already part of the
elision.

This also ensures missing spaces between commas in the array.

Amends d41f97e86702d8c5ac81a4246e1aab8dd965cbe4

Task-number: QTBUG-151040
Pick-to: 6.12
Change-Id: Ied05c0100210b0b2d06cf69a4fe55ee565239730
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`[1, 2, 3, 4, , ,]` is parsed with the comma that comes before the
trailing holes stored on two different nodes: on the ArrayPattern, and
on the list element that wraps those holes. The formatter wrote both, so
every pass over the file appended another hole to the array. That
changes the semantics of the expression.

Store the comma on the ArrayPattern only if it isn't already part of the
elision.

This also ensures missing spaces between commas in the array.

Amends d41f97e86702d8c5ac81a4246e1aab8dd965cbe4

Task-number: QTBUG-151040
Pick-to: 6.12
Change-Id: Ied05c0100210b0b2d06cf69a4fe55ee565239730
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Parser: Cleanup AST token kinds</title>
<updated>2026-10-01T10:56:07+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-09-26T10:04:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=420703a10d5990151ba5608eda74086eda351dce'/>
<id>420703a10d5990151ba5608eda74086eda351dce</id>
<content type='text'>
Rename Expression to CommaExpression and Module to ESModule to better
express their purpose.

Remove unused kinds.

Task-number: QTBUG-151040
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: Icebd15cc791a4b39ceb3de62d53583a769fda4a7
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename Expression to CommaExpression and Module to ESModule to better
express their purpose.

Remove unused kinds.

Task-number: QTBUG-151040
Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
Change-Id: Icebd15cc791a4b39ceb3de62d53583a769fda4a7
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmlformat: Write the comma of each hole of an array, not the first one's</title>
<updated>2026-10-01T10:56:05+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2026-09-30T08:50:55+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d33ed93fccc6cd187534736113b5c5df5cb48080'/>
<id>d33ed93fccc6cd187534736113b5c5df5cb48080</id>
<content type='text'>
Task-number: QTBUG-151040
Pick-to: 6.12 6.8
Change-Id: I57586956dff6f83dfc947c1bd23eac5391b710d7
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-151040
Pick-to: 6.12 6.8
Change-Id: I57586956dff6f83dfc947c1bd23eac5391b710d7
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Doc: Clarify TableView sorting property behavior at run-time</title>
<updated>2026-10-01T05:11:37+00:00</updated>
<author>
<name>Dilek Akcay</name>
<email>dilek.akcay@qt.io</email>
</author>
<published>2026-09-30T12:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0be90e31adc05fd34680e9629cbc8e2372c8a54a'/>
<id>0be90e31adc05fd34680e9629cbc8e2372c8a54a</id>
<content type='text'>
Add a note to sortColumn and sortOrder explaining that sortByColumn()
should be preferred when setting both at run-time, to avoid sorting the
model twice. Also link sortColumn/sortOrder from sortByColumn()'s
documentation.

Change-Id: I035fb83d8293932ff596bdd33195d3d48016cfe9
Reviewed-by: Richard Moe Gustavsen &lt;richard.gustavsen@qt.io&gt;
Reviewed-by: Jerome Pasion &lt;jerome.pasion@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a note to sortColumn and sortOrder explaining that sortByColumn()
should be preferred when setting both at run-time, to avoid sorting the
model twice. Also link sortColumn/sortOrder from sortByColumn()'s
documentation.

Change-Id: I035fb83d8293932ff596bdd33195d3d48016cfe9
Reviewed-by: Richard Moe Gustavsen &lt;richard.gustavsen@qt.io&gt;
Reviewed-by: Jerome Pasion &lt;jerome.pasion@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
