<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/quicktemplates/qquickstackview_p_p.h, 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>StackView: don't load new items if QML engine is null</title>
<updated>2025-10-01T04:07:32+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2025-09-19T01:48:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=b1ee7061ba77a7f5dc4148129bb2083f5c28e039'/>
<id>b1ee7061ba77a7f5dc4148129bb2083f5c28e039</id>
<content type='text'>
In the linked bug report, a Loader is deactivated after an Image within
it has started loading. A slot was connected to the statusChanged
signal of the Image, which calls replace(). This caused an assertion
failure because the StackView's QML engine was null.

Note that it's not enough to check if the QML context is non-null,
because it still is at that point.

There isn't an easy way to check for this in one place in
QQuickStackView, let alone in user code, so we need a lot of engine
checks.

Add a C++ test for StackView, as I wasn't able to get it to crash with
a QML-only test. For now we only need to test the Basic style, since
most styles don't provide anything too interesting or complex for
StackView.

Fixes: QTBUG-140018
Pick-to: 6.8 6.10
Change-Id: I53ba016bf44c46b7734b0b2daeeb62177f9067db
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the linked bug report, a Loader is deactivated after an Image within
it has started loading. A slot was connected to the statusChanged
signal of the Image, which calls replace(). This caused an assertion
failure because the StackView's QML engine was null.

Note that it's not enough to check if the QML context is non-null,
because it still is at that point.

There isn't an easy way to check for this in one place in
QQuickStackView, let alone in user code, so we need a lot of engine
checks.

Add a C++ test for StackView, as I wasn't able to get it to crash with
a QML-only test. For now we only need to test the Basic style, since
most styles don't provide anything too interesting or complex for
StackView.

Fixes: QTBUG-140018
Pick-to: 6.8 6.10
Change-Id: I53ba016bf44c46b7734b0b2daeeb62177f9067db
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<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>Alert when we are notifying semi-dead change listeners</title>
<updated>2024-12-01T17:41:22+00:00</updated>
<author>
<name>Volker Hilsheimer</name>
<email>volker.hilsheimer@qt.io</email>
</author>
<published>2023-04-16T13:47:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=a6c8de2780b6dface7504b5423e064e026a6e564'/>
<id>a6c8de2780b6dface7504b5423e064e026a6e564</id>
<content type='text'>
Add virtual methods "baseDeleted" and "debugName" to
QQuickItemChangeListener that let us report whether the object that
implements QQuickItemChangeListener is already being destroyed. Add a
"safe" version of QQuickItemChangeListener that overrides that virtual
method using CRTP: if the derived class that it is instantiated with has
a member "inDestructor" (e.g. a QQuickItemPrivate) or "wasDeleted" (e.g.
a QObjectPrivate), then return the value of that variable. If the
derived type is a QObject or QQuickItem, access the member via
QQmlData::wasDeleted.

Ignore calls on listeners that are the same object as the caller.

Use that new type in those classes where it isn't immediately obvious
that they clean up after themselves: classes that don't implement a
destructor are a red flag.

In addition, add a list to safe listener version to add/remove each
item it's listening on.

Issue runtime warnings in developer-builds when listeners are called
for which baseDestroyed() returns true, and when listeners are
destroyed while they still have items on their list.

Task-number: QTBUG-98790
Change-Id: I15ed66a36556caa0e6acf5b768dec2ae92b01d64
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add virtual methods "baseDeleted" and "debugName" to
QQuickItemChangeListener that let us report whether the object that
implements QQuickItemChangeListener is already being destroyed. Add a
"safe" version of QQuickItemChangeListener that overrides that virtual
method using CRTP: if the derived class that it is instantiated with has
a member "inDestructor" (e.g. a QQuickItemPrivate) or "wasDeleted" (e.g.
a QObjectPrivate), then return the value of that variable. If the
derived type is a QObject or QQuickItem, access the member via
QQmlData::wasDeleted.

Ignore calls on listeners that are the same object as the caller.

Use that new type in those classes where it isn't immediately obvious
that they clean up after themselves: classes that don't implement a
destructor are a red flag.

In addition, add a list to safe listener version to add/remove each
item it's listening on.

Issue runtime warnings in developer-builds when listeners are called
for which baseDestroyed() returns true, and when listeners are
destroyed while they still have items on their list.

Task-number: QTBUG-98790
Change-Id: I15ed66a36556caa0e6acf5b768dec2ae92b01d64
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QtQml: Add a wrapper builtin for QQmlV4Function*</title>
<updated>2024-04-12T18:32:59+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2024-04-11T08:17:52+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=99c7fe45be00b694da4041c5a06e5484f2985dc6'/>
<id>99c7fe45be00b694da4041c5a06e5484f2985dc6</id>
<content type='text'>
This way qmltyperegistrar can recognize it and refrain from warning
about it.

Task-number: QTBUG-101143
Change-Id: I598140e7e90dbd3e27a78c26eff3d46f0fd3e989
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This way qmltyperegistrar can recognize it and refrain from warning
about it.

Task-number: QTBUG-101143
Change-Id: I598140e7e90dbd3e27a78c26eff3d46f0fd3e989
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>StackView: add strongly-typed replace functions</title>
<updated>2023-07-05T05:06:53+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2023-06-22T06:36:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1baa7fc3e7956773e6da6d062bc0f1c84a5ec3f3'/>
<id>1baa7fc3e7956773e6da6d062bc0f1c84a5ec3f3</id>
<content type='text'>
[ChangeLog][Controls][StackView] Added strongly-typed
replaceCurrentItem functions. These can be compiled to C++
by the QML Compiler.

Task-number: QTBUG-112475
Change-Id: I5de7d712cd1839ed3e6f1f7229bd2e5c896fd6bd
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ChangeLog][Controls][StackView] Added strongly-typed
replaceCurrentItem functions. These can be compiled to C++
by the QML Compiler.

Task-number: QTBUG-112475
Change-Id: I5de7d712cd1839ed3e6f1f7229bd2e5c896fd6bd
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>StackView: add strongly-typed pop functions</title>
<updated>2023-07-05T05:06:53+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2023-06-20T04:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=7d0ec8910f864426ac53aeb12bea505c59f7125a'/>
<id>7d0ec8910f864426ac53aeb12bea505c59f7125a</id>
<content type='text'>
[ChangeLog][Controls][StackView] Added strongly-typed popToItem
popToIndex, and popCurrentItem functions. These can be compiled to C++
by the QML Compiler.

Task-number: QTBUG-112475
Change-Id: If7452ec238a2d292a64d266ac27bdb146c713017
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ChangeLog][Controls][StackView] Added strongly-typed popToItem
popToIndex, and popCurrentItem functions. These can be compiled to C++
by the QML Compiler.

Task-number: QTBUG-112475
Change-Id: If7452ec238a2d292a64d266ac27bdb146c713017
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build with -no-feature-quick-viewtransitions</title>
<updated>2023-03-07T09:24:50+00:00</updated>
<author>
<name>Tasuku Suzuki</name>
<email>tasuku.suzuki@signal-slot.co.jp</email>
</author>
<published>2023-03-05T08:11:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=562a1a46a0917be3f9bb8c24b81aa7ad5a46f010'/>
<id>562a1a46a0917be3f9bb8c24b81aa7ad5a46f010</id>
<content type='text'>
Pick-to: 6.5
Change-Id: I609a843bddbd0776452d289b144dab803503a483
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pick-to: 6.5
Change-Id: I609a843bddbd0776452d289b144dab803503a483
Reviewed-by: Volker Hilsheimer &lt;volker.hilsheimer@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove "2" from Qt Quick Controls directories</title>
<updated>2022-12-01T02:26:20+00:00</updated>
<author>
<name>Mitch Curtis</name>
<email>mitch.curtis@qt.io</email>
</author>
<published>2022-11-18T07:15:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=4bd87b903b355b53e3105ba1ae7c154c4e55cdaf'/>
<id>4bd87b903b355b53e3105ba1ae7c154c4e55cdaf</id>
<content type='text'>
Qt Quick Controls 2 was named that way because it was a follow-up to
Qt Quick Controls 1.x. Now that Qt Quick Controls 1 is no longer
supported, we don't need to have "2" in the name. Work on this was
already started for the documentation in
1abdfe5d5a052f2298b7bf657513dfa7e0c66a56.

By doing this renaming a few weeks before feature freeze, it won't
affect the release but still results in as little time possible spent
manually fixing conflicts in cherry-picks from non-LTS releases as a
result of the renaming.

This patch does the following:

- Renames directories.
- Adapts CMakeLists.txt and other files to account for the new paths.

A follow-up patch will handle documentation.

It does not touch library names or other user-facing stuff, as that
will have to be done in Qt 7.

Task-number: QTBUG-95413
Change-Id: I170d8db19033ee71e495ff0c5c1a517a41ed7634
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Qt Quick Controls 2 was named that way because it was a follow-up to
Qt Quick Controls 1.x. Now that Qt Quick Controls 1 is no longer
supported, we don't need to have "2" in the name. Work on this was
already started for the documentation in
1abdfe5d5a052f2298b7bf657513dfa7e0c66a56.

By doing this renaming a few weeks before feature freeze, it won't
affect the release but still results in as little time possible spent
manually fixing conflicts in cherry-picks from non-LTS releases as a
result of the renaming.

This patch does the following:

- Renames directories.
- Adapts CMakeLists.txt and other files to account for the new paths.

A follow-up patch will handle documentation.

It does not touch library names or other user-facing stuff, as that
will have to be done in Qt 7.

Task-number: QTBUG-95413
Change-Id: I170d8db19033ee71e495ff0c5c1a517a41ed7634
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
