<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/tools, 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: 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>qmlpreview: Don't duplicate arguments on every restart</title>
<updated>2026-09-25T13:50:05+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2026-09-24T07:36:59+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b200faedd4026bbfa8cbb12c7374f30c1a87e075'/>
<id>b200faedd4026bbfa8cbb12c7374f30c1a87e075</id>
<content type='text'>
Amends commit 265c9250df853df1110ca4c2545b100481b98a2e.

Pick-to: 6.12
Change-Id: Ibe18bc49a59e93a48341d204dcc238f366d60e55
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Amends commit 265c9250df853df1110ca4c2545b100481b98a2e.

Pick-to: 6.12
Change-Id: Ibe18bc49a59e93a48341d204dcc238f366d60e55
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmllint: complain on disrespected max warnings</title>
<updated>2026-09-16T13:24:53+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-09-10T08:59:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e71da1f0fe4ffd572dd50df94b2d8410a7587f1e'/>
<id>e71da1f0fe4ffd572dd50df94b2d8410a7587f1e</id>
<content type='text'>
Make qmllint warn when MaxWarnings is not respected. This should help
spot the current number of warnings more easily when trying to set
MaxWarnings to an initial value on a QML project with QML warnings.

Make the new max-warnings-exceeded warning category an Error so that
qmllint returns a non-zero exit code when exceeding MaxWarnings, an
remove the custom logic in qmllint/main.cpp that set success to false.
The new category is Essential so that users can't downgrade it via
commandline or settings files.

Note that qmllint can override MaxWarnings from the settings file with
its command-line parameter, while qmlls only accepts MaxWarnings from
the settings file.

Fixes: QTBUG-150177
Change-Id: Ia5e9e360d5fa495d9cf80f48e4074dddf161bdd4
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make qmllint warn when MaxWarnings is not respected. This should help
spot the current number of warnings more easily when trying to set
MaxWarnings to an initial value on a QML project with QML warnings.

Make the new max-warnings-exceeded warning category an Error so that
qmllint returns a non-zero exit code when exceeding MaxWarnings, an
remove the custom logic in qmllint/main.cpp that set success to false.
The new category is Essential so that users can't downgrade it via
commandline or settings files.

Note that qmllint can override MaxWarnings from the settings file with
its command-line parameter, while qmlls only accepts MaxWarnings from
the settings file.

Fixes: QTBUG-150177
Change-Id: Ia5e9e360d5fa495d9cf80f48e4074dddf161bdd4
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmllint: add settings class</title>
<updated>2026-09-16T13:24:50+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-09-10T08:01:34+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=928e4d00129e727d6954a3af0306fb54ffcd10a0'/>
<id>928e4d00129e727d6954a3af0306fb54ffcd10a0</id>
<content type='text'>
Introduce a new settings class for Qmllint that inherits from
QQmlToolingSettings, just like QQmlFormatSettings. This is needed for
QTBUG-150177 so that we can add a static const inline member for the
MaxWarnings key name.

Task-number: QTBUG-150177
Change-Id: Ie8900679f10a84e8794bf21f5a957224f7e69955
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce a new settings class for Qmllint that inherits from
QQmlToolingSettings, just like QQmlFormatSettings. This is needed for
QTBUG-150177 so that we can add a static const inline member for the
MaxWarnings key name.

Task-number: QTBUG-150177
Change-Id: Ie8900679f10a84e8794bf21f5a957224f7e69955
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow loading sourceData from vectorimage</title>
<updated>2026-09-14T06:26:29+00:00</updated>
<author>
<name>Eskil Abrahamsen Blomfeldt</name>
<email>eskil.abrahamsen-blomfeldt@qt.io</email>
</author>
<published>2026-08-11T12:22:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=819b8595319a922d8c53dc71a345952d58a6d5f4'/>
<id>819b8595319a922d8c53dc71a345952d58a6d5f4</id>
<content type='text'>
This implements private API for loading a QQuickVectorImage from
a QByteArray directly instead of going via a file. It exists for the
purpose of fuzz testing, to avoid having to save fuzzed content to
a file before testing it.

Pick-to: 6.12
Task-number: QTBUG-148828
Change-Id: I69e1df5ec116a7de826cfba2bf5b28b7987178d8
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements private API for loading a QQuickVectorImage from
a QByteArray directly instead of going via a file. It exists for the
purpose of fuzz testing, to avoid having to save fuzzed content to
a file before testing it.

Pick-to: 6.12
Task-number: QTBUG-148828
Change-Id: I69e1df5ec116a7de826cfba2bf5b28b7987178d8
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmlcontextpropertydump: don't build if not available on host</title>
<updated>2026-07-29T15:39:28+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2025-10-29T15:43:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4233c0c9fdaefa8802a0a6a26b915f475e7e9ad6'/>
<id>4233c0c9fdaefa8802a0a6a26b915f475e7e9ad6</id>
<content type='text'>
Disable the building of qmlcontextpropertydump when crosscompiling with
a host that does not have qmlcontextpropertydump (e.g., when the
qmlcontextpropertydump feature is disabled on the host).

Pick-to: 6.12
Fixes: QTBUG-148180
Change-Id: I3d821e2bb4ee02c23e303958320714801fc1a1f9
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disable the building of qmlcontextpropertydump when crosscompiling with
a host that does not have qmlcontextpropertydump (e.g., when the
qmlcontextpropertydump feature is disabled on the host).

Pick-to: 6.12
Fixes: QTBUG-148180
Change-Id: I3d821e2bb4ee02c23e303958320714801fc1a1f9
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmllint: parse/lint argument files only once</title>
<updated>2026-07-21T07:04:21+00:00</updated>
<author>
<name>Sami Shalayel</name>
<email>sami.shalayel@qt.io</email>
</author>
<published>2026-06-29T14:58:15+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=f88681d820caf542ee6ef385bf51dc7894b97af3'/>
<id>f88681d820caf542ee6ef385bf51dc7894b97af3</id>
<content type='text'>
Before a37e4270a5e66507aeda483ec4d32262096b44cc, qmllint used to create
up to two qqmljsscopes for each file it got as command line parameters.

a37e4270a5e66507aeda483ec4d32262096b44cc enhanced this situation by
avoiding the duplicate scopes, but still processed each file twice (once
by the LinterVisitor for the actual linting and once via lazy-loading
when the file gets pulled in as dependency for another file to be linted).
This lead to QTBUG-146688 where processing the same file into the same
scope has some buggy side-effects and breaks the assumption that
lazy-loaded scopes are never modified after creation.

This patch addresses this issue by making qmllint process each
QML file from its command line once by merging the linting process
and the lazy-loading mechanism together.

Rework QmlJSLinter to work in two stages:
1. collect all files to be linted with prepareFileForBatchLinting()
2. do the actual linting with lintFileInBatch()

 -- Stage 1:
In prepareFileForBatchLinting, set up the file-to-be-linted with a
linting factory to lazy-load it via LinterVisitor instead of
QQmlJSImportVisitor.

"unprepared" files needed by the file-to-be-linted are still loaded
via QQmlJSImportVisitor.

 -- Stage 2:
In lintFile, populate the lazy file if needed and continue with the
rest of the linting process.
At this stage, the QQmlJSScopes of the QML files used by the
current-QML-file-to-be-linted can be populated via lazy construction,
which means that cycle references can be resolved. A first attempt
where all the linting pipeline ran during lazy-loading in stage 1 was
unsuccessful at resolving cyclic dependencies between files.

Remove m_logger from QQmlJSLinter: there may be multiple active loggers,
for example when lazy-loading a file via LinterVisitor during the
linting process of another file.

To avoid QTBUG-146688, make prepareForBatchLinting() return false when
linting would re-populate an already populated scope.
Re-populating a scope breaks all the references to its children which
leads to QTBUG-146688.

Adapt qmllint/main.cpp to prepare all file passed by commandline before
starting to lint them.

Adapt tst_qmllint to:
* simulate clean snippet scope that are actually reused. Snippets
  are not used by other QML code so their scope and children can
  safely be deleted.
* clear the cache when scope re-populating happens on non-snippets. Note
  that clearing the cache for each linted file would be cleaner but
  increases the test runtime by a factor of 2.5x.

Fixes: QTBUG-146688
Change-Id: Ibc7586501388988d60d8ca0fbfff4949ed3c3c22
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before a37e4270a5e66507aeda483ec4d32262096b44cc, qmllint used to create
up to two qqmljsscopes for each file it got as command line parameters.

a37e4270a5e66507aeda483ec4d32262096b44cc enhanced this situation by
avoiding the duplicate scopes, but still processed each file twice (once
by the LinterVisitor for the actual linting and once via lazy-loading
when the file gets pulled in as dependency for another file to be linted).
This lead to QTBUG-146688 where processing the same file into the same
scope has some buggy side-effects and breaks the assumption that
lazy-loaded scopes are never modified after creation.

This patch addresses this issue by making qmllint process each
QML file from its command line once by merging the linting process
and the lazy-loading mechanism together.

Rework QmlJSLinter to work in two stages:
1. collect all files to be linted with prepareFileForBatchLinting()
2. do the actual linting with lintFileInBatch()

 -- Stage 1:
In prepareFileForBatchLinting, set up the file-to-be-linted with a
linting factory to lazy-load it via LinterVisitor instead of
QQmlJSImportVisitor.

"unprepared" files needed by the file-to-be-linted are still loaded
via QQmlJSImportVisitor.

 -- Stage 2:
In lintFile, populate the lazy file if needed and continue with the
rest of the linting process.
At this stage, the QQmlJSScopes of the QML files used by the
current-QML-file-to-be-linted can be populated via lazy construction,
which means that cycle references can be resolved. A first attempt
where all the linting pipeline ran during lazy-loading in stage 1 was
unsuccessful at resolving cyclic dependencies between files.

Remove m_logger from QQmlJSLinter: there may be multiple active loggers,
for example when lazy-loading a file via LinterVisitor during the
linting process of another file.

To avoid QTBUG-146688, make prepareForBatchLinting() return false when
linting would re-populate an already populated scope.
Re-populating a scope breaks all the references to its children which
leads to QTBUG-146688.

Adapt qmllint/main.cpp to prepare all file passed by commandline before
starting to lint them.

Adapt tst_qmllint to:
* simulate clean snippet scope that are actually reused. Snippets
  are not used by other QML code so their scope and children can
  safely be deleted.
* clear the cache when scope re-populating happens on non-snippets. Note
  that clearing the cache for each linted file would be cleaner but
  increases the test runtime by a factor of 2.5x.

Fixes: QTBUG-146688
Change-Id: Ibc7586501388988d60d8ca0fbfff4949ed3c3c22
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmlpreview: Add interactive mode and --output option</title>
<updated>2026-07-19T17:41:58+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2026-07-14T13:29:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0369b8a128d25c89e086e8a9ef42f2688b8ded24'/>
<id>0369b8a128d25c89e086e8a9ef42f2688b8ded24</id>
<content type='text'>
This is modeled after the interactive mode that qmlprofiler already
offers. You can store the event stream into a .qtd file, and replay it.
In contrast to qmlprofiler, you can also kill and re-start the
application. That is handy if you notice the preview couldn't handle
some change and want to replay the stored input events into a clean
slate.

Pick-to: 6.12
Task-number: QTBUG-146122
Change-Id: Ic0086e4f4b6c837a6bf1210430eeceb722b80cb7
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is modeled after the interactive mode that qmlprofiler already
offers. You can store the event stream into a .qtd file, and replay it.
In contrast to qmlprofiler, you can also kill and re-start the
application. That is handy if you notice the preview couldn't handle
some change and want to replay the stored input events into a clean
slate.

Pick-to: 6.12
Task-number: QTBUG-146122
Change-Id: Ic0086e4f4b6c837a6bf1210430eeceb722b80cb7
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QmlDebug: Add a reusable interactive console</title>
<updated>2026-07-19T17:41:52+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2026-07-14T10:12:35+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ba02327bdfecd1d19653584886007c5d97e3347e'/>
<id>ba02327bdfecd1d19653584886007c5d97e3347e</id>
<content type='text'>
Factor the interactive command-line mechanism that was open-coded in
qmlprofiler into QmlDebugPrivate so that other QML debugging tools can
reuse it.

We move qmlprofiler's console handling into QmlDebug: QQmlDebugConsole
owns a QQmlDebugCommandListener on a worker thread, dispatches lines to
registered command handlers, renders a generated help listing and offers
a reusable yes/no confirmation flow. The listener keeps a single
persistent QTextStream and reports end-of-input so consumers can quit
when standard input is closed.

Pick-to: 6.12
Task-number: QTBUG-146122
Change-Id: I237dce26026fd520cbab25efcf5ce08d25507c92
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Factor the interactive command-line mechanism that was open-coded in
qmlprofiler into QmlDebugPrivate so that other QML debugging tools can
reuse it.

We move qmlprofiler's console handling into QmlDebug: QQmlDebugConsole
owns a QQmlDebugCommandListener on a worker thread, dispatches lines to
registered command handlers, renders a generated help listing and offers
a reusable yes/no confirmation flow. The listener keeps a single
persistent QTextStream and reports end-of-input so consumers can quit
when standard input is closed.

Pick-to: 6.12
Task-number: QTBUG-146122
Change-Id: I237dce26026fd520cbab25efcf5ce08d25507c92
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltc: remove a copy</title>
<updated>2026-07-14T06:58:19+00:00</updated>
<author>
<name>Aurélien Brooke</name>
<email>aurelien@bahiasoft.fr</email>
</author>
<published>2026-07-10T19:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=29c4770cfe616c9aebac2be896c0d20256661074'/>
<id>29c4770cfe616c9aebac2be896c0d20256661074</id>
<content type='text'>
Nothing particularly bad, but GCC warns about it:

/qt/qtdeclarative/tools/qmltc/main.cpp:36:21: warning: loop variable
'&lt;structured bindings&gt;' creates a copy from type 'const
std::pair&lt;QQmlSA::LoggerWarningId,
std::optional&lt;QQmlSA::WarningSeverity&gt; &gt;' [-Wrange-loop-construct]
   36 |     for (const auto [id, catOverride] :
QQmltc::categoryOverrides()) {
      |                     ^~~~~~~~~~~~~~~~~
/qt/qtdeclarative/tools/qmltc/main.cpp:36:21: note: use reference type
to prevent copying
   36 |     for (const auto [id, catOverride] :
QQmltc::categoryOverrides()) {
      |                     ^~~~~~~~~~~~~~~~~
      |                     &amp;

Amends 39742e8930cfc24d19a10ce213ee647a1adb2117

Pick-to: 6.12 6.11
Change-Id: Ic1f1b6b867ed1660045cff95eb07bfc9e2836489
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nothing particularly bad, but GCC warns about it:

/qt/qtdeclarative/tools/qmltc/main.cpp:36:21: warning: loop variable
'&lt;structured bindings&gt;' creates a copy from type 'const
std::pair&lt;QQmlSA::LoggerWarningId,
std::optional&lt;QQmlSA::WarningSeverity&gt; &gt;' [-Wrange-loop-construct]
   36 |     for (const auto [id, catOverride] :
QQmltc::categoryOverrides()) {
      |                     ^~~~~~~~~~~~~~~~~
/qt/qtdeclarative/tools/qmltc/main.cpp:36:21: note: use reference type
to prevent copying
   36 |     for (const auto [id, catOverride] :
QQmltc::categoryOverrides()) {
      |                     ^~~~~~~~~~~~~~~~~
      |                     &amp;

Amends 39742e8930cfc24d19a10ce213ee647a1adb2117

Pick-to: 6.12 6.11
Change-Id: Ic1f1b6b867ed1660045cff95eb07bfc9e2836489
Reviewed-by: Olivier De Cannière &lt;olivier.decanniere@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
