<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/tests, 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>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>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>Fix build of animation benchmark</title>
<updated>2026-09-30T16:03:58+00:00</updated>
<author>
<name>Joerg Bornemann</name>
<email>joerg.bornemann@qt.io</email>
</author>
<published>2026-09-30T13:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=9a0933e326bf51b0b4633f8e8f03c1ee95672460'/>
<id>9a0933e326bf51b0b4633f8e8f03c1ee95672460</id>
<content type='text'>
Change-Id: I2cb13dd66cf3f3c82141eb5b18094edce9cacb11
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I2cb13dd66cf3f3c82141eb5b18094edce9cacb11
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>CMake: Make benchmarks buildable standalone</title>
<updated>2026-09-30T16:03:58+00:00</updated>
<author>
<name>Joerg Bornemann</name>
<email>joerg.bornemann@qt.io</email>
</author>
<published>2026-09-30T11:25:47+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2317ac46e2e199b0cf6338768bc7967c4b273044'/>
<id>2317ac46e2e199b0cf6338768bc7967c4b273044</id>
<content type='text'>
Add the necessary project file stanza that allows to configure the
benchmarks with qt-cmake-private.

Change-Id: If39ecade44205409a9412e462c3a4e15223d9950
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the necessary project file stanza that allows to configure the
benchmarks with qt-cmake-private.

Change-Id: If39ecade44205409a9412e462c3a4e15223d9950
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tst_qmlls_qqmlcodemodel.cpp: use QQmlJSScope to check loaded file path</title>
<updated>2026-09-30T16:03:58+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-09-29T09:23:17+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bb1c58a6d713feb7daab89449c8eb4185e542e5c'/>
<id>bb1c58a6d713feb7daab89449c8eb4185e542e5c</id>
<content type='text'>
Use the QQmlJSScope in the test to check the file paths of loaded
dependencies, instead of using's the DOM dependency loading that will be
removed in a later commit.

QTBUG-150842 aims to remove the DOM dependency loading code, including
the code that processes the imports and that loads the .qmldir of
imported modules when opening a .qml file in the DOM.

Task-number: QTBUG-150842
Change-Id: I590ad5824c66be5e4e8de75705f6fbf3cf76950f
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the QQmlJSScope in the test to check the file paths of loaded
dependencies, instead of using's the DOM dependency loading that will be
removed in a later commit.

QTBUG-150842 aims to remove the DOM dependency loading code, including
the code that processes the imports and that loads the .qmldir of
imported modules when opening a .qml file in the DOM.

Task-number: QTBUG-150842
Change-Id: I590ad5824c66be5e4e8de75705f6fbf3cf76950f
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
