<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/quick/util/qquickpropertychanges_p.h, branch 6.11</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Set explicit default security level of all files with default security</title>
<updated>2025-09-17T13:31:14+00:00</updated>
<author>
<name>Jan Arve Sæther</name>
<email>jan-arve.saether@qt.io</email>
</author>
<published>2025-09-16T13:35:55+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=01cd43d30e3ca2c4dd94a4a4711604adb9417517'/>
<id>01cd43d30e3ca2c4dd94a4a4711604adb9417517</id>
<content type='text'>
The files (folders) already processed are listed in each issue in epic
QTBUG-134547

These files were processed half a year ago. In order to make it clear
that all of these files are already processed, mark them with an
explicit default security header.

For the record, this was generated with this script:

find -E . -regex ".*\.(cpp|h|hpp|mm|qml|js)$" | xargs python3 ~/bin/add-cra-header.py

in the folders listed in each subtask of QTBUG-134547

(add-cra-header.py only exist at my desktop, but it simply adds the
default security header if it doesn't already have any existing security
header)

QUIP: 23
Fixes: QTBUG-134547
Pick-to: 6.10 6.9 6.8
Change-Id: Ieb8c78ea6561fdbdd27c7b13185ece853eedf80f
Reviewed-by: Oliver Eftevaag &lt;oliver.eftevaag@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The files (folders) already processed are listed in each issue in epic
QTBUG-134547

These files were processed half a year ago. In order to make it clear
that all of these files are already processed, mark them with an
explicit default security header.

For the record, this was generated with this script:

find -E . -regex ".*\.(cpp|h|hpp|mm|qml|js)$" | xargs python3 ~/bin/add-cra-header.py

in the folders listed in each subtask of QTBUG-134547

(add-cra-header.py only exist at my desktop, but it simply adds the
default security header if it doesn't already have any existing security
header)

QUIP: 23
Fixes: QTBUG-134547
Pick-to: 6.10 6.9 6.8
Change-Id: Ieb8c78ea6561fdbdd27c7b13185ece853eedf80f
Reviewed-by: Oliver Eftevaag &lt;oliver.eftevaag@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QtQml: Do not use ExecutableCompilationUnit in verifyBindings()</title>
<updated>2024-12-04T16:27:01+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2024-12-02T14:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1c0b8186a1cc3992b89005d3233e826ceca8f126'/>
<id>1c0b8186a1cc3992b89005d3233e826ceca8f126</id>
<content type='text'>
verifyBindings() is called from the type loader thread and creating an
executable compilation unit involves manipulating the engine data
structures. This is a data race.

Luckily we don't actually need an executable compilation unit in any of
the custom parsers. A regular compilation unit is entirely enough.

Furthermore, we also cannot access QQmlEnginePrivate from the type
loader thread, for similar reasons. Again, the custom parsers never
actually need the engine. They only need the type loader which the
validator can provide.

Amends commit 930c8f186ac07f3462de41bcba6cf9d881e79fc2.

Pick-to: 6.8
Change-Id: Ic5991dad770491578bc46b0f97cef3efa877ec10
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
verifyBindings() is called from the type loader thread and creating an
executable compilation unit involves manipulating the engine data
structures. This is a data race.

Luckily we don't actually need an executable compilation unit in any of
the custom parsers. A regular compilation unit is entirely enough.

Furthermore, we also cannot access QQmlEnginePrivate from the type
loader thread, for similar reasons. Again, the custom parsers never
actually need the engine. They only need the type loader which the
validator can provide.

Amends commit 930c8f186ac07f3462de41bcba6cf9d881e79fc2.

Pick-to: 6.8
Change-Id: Ic5991dad770491578bc46b0f97cef3efa877ec10
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Partially revert "Make properties in Qt Quick FINAL to prevent shadowing"</title>
<updated>2024-02-17T21:07:23+00:00</updated>
<author>
<name>Fabian Kosmale</name>
<email>fabian.kosmale@qt.io</email>
</author>
<published>2024-02-12T11:51:52+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=bd131dcbf579f822ac8cee98324dc1355f7cd314'/>
<id>bd131dcbf579f822ac8cee98324dc1355f7cd314</id>
<content type='text'>
Making properties FINAL is an API break not covered by any QUIP rule.
However, this does not apply to the attached and uncreatable types
(either explicitly, or because they are singletons or value types) whose
properties were marked FINAL in the referenced commit, as it is not
possible to derive from them anyway. So those are left with their
properties still marked as final.

This partially reverts commit 351979e05ad2a861fc3e6f8d1de6197a751316a8.

Pick-to: 6.6 6.7
Change-Id: I1ce8c0873c4600ec2aad8e078c379239ad03f74a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Making properties FINAL is an API break not covered by any QUIP rule.
However, this does not apply to the attached and uncreatable types
(either explicitly, or because they are singletons or value types) whose
properties were marked FINAL in the referenced commit, as it is not
possible to derive from them anyway. So those are left with their
properties still marked as final.

This partially reverts commit 351979e05ad2a861fc3e6f8d1de6197a751316a8.

Pick-to: 6.6 6.7
Change-Id: I1ce8c0873c4600ec2aad8e078c379239ad03f74a
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the use of Q_QUICK_PRIVATE_EXPORT</title>
<updated>2024-01-09T09:40:47+00:00</updated>
<author>
<name>Alexey Edelev</name>
<email>alexey.edelev@qt.io</email>
</author>
<published>2023-11-23T09:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=9dd45fff835a7c261dacc9ee6239d42ef1a74bbe'/>
<id>9dd45fff835a7c261dacc9ee6239d42ef1a74bbe</id>
<content type='text'>
Task-number: QTBUG-117983
Change-Id: Ia904c9390efb13b92de2e16fa0690e48394f9bab
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Task-number: QTBUG-117983
Change-Id: Ia904c9390efb13b92de2e16fa0690e48394f9bab
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove all QML_DECLARE_TYPE from src and tools</title>
<updated>2023-11-18T07:37:33+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2023-11-16T13:00:22+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=03d58031c7233e0579f463b9484af8227b0938fd'/>
<id>03d58031c7233e0579f463b9484af8227b0938fd</id>
<content type='text'>
They are generally not useful for anything.

Change-Id: I12e959ce9338e6eb7465633496c7921fa09a3fe8
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They are generally not useful for anything.

Change-Id: I12e959ce9338e6eb7465633496c7921fa09a3fe8
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make properties in Qt Quick FINAL to prevent shadowing</title>
<updated>2023-06-08T10:21:28+00:00</updated>
<author>
<name>Oliver Eftevaag</name>
<email>oliver.eftevaag@qt.io</email>
</author>
<published>2023-05-26T14:49:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=351979e05ad2a861fc3e6f8d1de6197a751316a8'/>
<id>351979e05ad2a861fc3e6f8d1de6197a751316a8</id>
<content type='text'>
Without setting the FINAL flag, properties can be shadowed by users.
In the following example:

Image {
  property string source: "Shadowing QQuickImage::source"
}

The source property of QQuickImage, will be shadowed by a new property
with the same name.

This can both cause confusion for non-experienced users, and it causes
issues with qmlsc.

Shadowing a property is usually unwanted. But there are some situations
where it might be intended. The QML Object Attributes doc page
demonstrates that you can override the color property in
QQuickRectangle, for instance.

[ChangeLog][Important Behavior Changes][QtQuick] Most properties for
types in the QtQuick module are now FINAL, meaning that they can no
longer be shadowed by declaring new properties with the same names.
With few exceptions. A warning will be printed out to the console, when
a FINAL property is shadowed. We recommend that users rename those
properties to avoid potential unexpected behavior changes.

Task-number: QTBUG-108739
Pick-to: 6.6
Change-Id: I1070926606f4d88ef7edf088ff80fb3ec82305c8
Reviewed-by: Jan Arve Sæther &lt;jan-arve.saether@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without setting the FINAL flag, properties can be shadowed by users.
In the following example:

Image {
  property string source: "Shadowing QQuickImage::source"
}

The source property of QQuickImage, will be shadowed by a new property
with the same name.

This can both cause confusion for non-experienced users, and it causes
issues with qmlsc.

Shadowing a property is usually unwanted. But there are some situations
where it might be intended. The QML Object Attributes doc page
demonstrates that you can override the color property in
QQuickRectangle, for instance.

[ChangeLog][Important Behavior Changes][QtQuick] Most properties for
types in the QtQuick module are now FINAL, meaning that they can no
longer be shadowed by declaring new properties with the same names.
With few exceptions. A warning will be printed out to the console, when
a FINAL property is shadowed. We recommend that users rename those
properties to avoid potential unexpected behavior changes.

Task-number: QTBUG-108739
Pick-to: 6.6
Change-Id: I1070926606f4d88ef7edf088ff80fb3ec82305c8
Reviewed-by: Jan Arve Sæther &lt;jan-arve.saether@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use SPDX license identifiers</title>
<updated>2022-06-11T06:05:15+00:00</updated>
<author>
<name>Lucie Gérard</name>
<email>lucie.gerard@qt.io</email>
</author>
<published>2022-05-13T13:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=0dc4fd240a2897c5c443a0ef6d84c416843e4938'/>
<id>0dc4fd240a2897c5c443a0ef6d84c416843e4938</id>
<content type='text'>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.

Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QQuickPropertyChanges: Add notification signals to properties</title>
<updated>2022-03-18T21:56:53+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-03-16T07:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b236ad109dc1ae28a6b3060465626f831b5e94a1'/>
<id>b236ad109dc1ae28a6b3060465626f831b5e94a1</id>
<content type='text'>
Change-Id: Ie6d58a4f2c2c9f9701d2687daac4b5f51d51546e
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ie6d58a4f2c2c9f9701d2687daac4b5f51d51546e
Reviewed-by: Shawn Rutledge &lt;shawn.rutledge@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use generalized grouped properties in QQuickPropertyChanges</title>
<updated>2021-10-28T15:49:52+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2021-10-26T16:01:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=f8e20bb34e2d71bfcfc8710737dfaf6912145642'/>
<id>f8e20bb34e2d71bfcfc8710737dfaf6912145642</id>
<content type='text'>
Process deferred bindings like custom parsed ones.

Task-number: QTBUG-95117
Change-Id: Ia4d8ca81e789c1e57bf947c40f76356db3bad8da
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Process deferred bindings like custom parsed ones.

Task-number: QTBUG-95117
Change-Id: Ia4d8ca81e789c1e57bf947c40f76356db3bad8da
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qmltypes: Add information about QQmlCustomParser</title>
<updated>2021-04-27T07:35:47+00:00</updated>
<author>
<name>Maximilian Goldstein</name>
<email>max.goldstein@qt.io</email>
</author>
<published>2021-04-26T15:08:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=077b8f8df437d1cfcf67b153dd4535c36786bdee'/>
<id>077b8f8df437d1cfcf67b153dd4535c36786bdee</id>
<content type='text'>
Adds a macro called QML_CUSTOMPARSER which will result in a hasCustomParser flag to be set in qmltypes.
Also ensures qmllint does not warn about unknown properties when a class utilizes custom parsers.

Fixes: QTBUG-93027
Change-Id: I7559d79c9bf06a0a7a93f54370948f12d09dd64e
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a macro called QML_CUSTOMPARSER which will result in a hasCustomParser flag to be set in qmltypes.
Also ensures qmllint does not warn about unknown properties when a class utilizes custom parsers.

Fixes: QTBUG-93027
Change-Id: I7559d79c9bf06a0a7a93f54370948f12d09dd64e
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
