<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/labs/sharedimage, 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>Fix dependencies and versions for various QML modules</title>
<updated>2026-02-19T09:02:57+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2026-02-13T08:41:25+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=5c27e34d9166916823f031c7f21611da06148baa'/>
<id>5c27e34d9166916823f031c7f21611da06148baa</id>
<content type='text'>
Our own modules should have PROJECT_VERSION and depend and import other
modules with "auto" so as to forward the same version. This ensures
consistency when users import our modules.

Use DEPENDENCIES rather than DEFAULT_IMPORTS for expressing
dependencies. DEFAULT_IMPORTS is used to select the default from a
number of optional imports. When used incorrectly it confuses tooling.

Change-Id: Idaa96be247d57f19bca3e2e88243008e20581ff2
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our own modules should have PROJECT_VERSION and depend and import other
modules with "auto" so as to forward the same version. This ensures
consistency when users import our modules.

Use DEPENDENCIES rather than DEFAULT_IMPORTS for expressing
dependencies. DEFAULT_IMPORTS is used to select the default from a
number of optional imports. When used incorrectly it confuses tooling.

Change-Id: Idaa96be247d57f19bca3e2e88243008e20581ff2
Reviewed-by: Eirik Aavitsland &lt;eirik.aavitsland@qt.io&gt;
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add all .qdoc files to their respective projects</title>
<updated>2026-01-22T14:12:27+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2026-01-19T12:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=d1a1d3a2542f897c3fbd4c6c985281c5e81775d8'/>
<id>d1a1d3a2542f897c3fbd4c6c985281c5e81775d8</id>
<content type='text'>
We want to make them available to IDEs so that we don't have to search
the file system.

Exclude quickcontrols and quicktemplates for now. In these projects the
qdoc files are managed separately.

Change-Id: I4505216a891addbe0e07ae809126e69ab65b62ca
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We want to make them available to IDEs so that we don't have to search
the file system.

Exclude quickcontrols and quicktemplates for now. In these projects the
qdoc files are managed separately.

Change-Id: I4505216a891addbe0e07ae809126e69ab65b62ca
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace QVector with QList</title>
<updated>2026-01-09T19:44:46+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2026-01-08T18:16:07+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=941445ba18c8003948dc9bb9e257114ca13e12fb'/>
<id>941445ba18c8003948dc9bb9e257114ca13e12fb</id>
<content type='text'>
Since QVector is just an alias, let's finally do what we could have
done for Qt 6.0.

Pick-to: 6.11
Change-Id: Ia9dbc8ecf4f099339cf7639acb22c14b24fa680b
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since QVector is just an alias, let's finally do what we could have
done for Qt 6.0.

Pick-to: 6.11
Change-Id: Ia9dbc8ecf4f099339cf7639acb22c14b24fa680b
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Mark security header for the qt labs sharedimage</title>
<updated>2025-09-23T07:43:15+00:00</updated>
<author>
<name>Santhosh Kumar</name>
<email>santhosh.kumar.selvaraj@qt.io</email>
</author>
<published>2025-09-22T10:27:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=2ef3de7803b9a35f58dc1355d5d6ad986fff18fc'/>
<id>2ef3de7803b9a35f58dc1355d5d6ad986fff18fc</id>
<content type='text'>
The image loader (QuickSharedImageLoader) uses shared memory
(QSharedMemory) but it shouldn't trigger security issue from the
framework itself.

QUIP: 23
Task-number: QTBUG-136184
Pick-to: 6.10 6.8
Change-Id: Ie0c5f63e3c7d4c8557dab8c12af412fd6dad1464
Reviewed-by: Oliver Eftevaag &lt;oliver.eftevaag@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The image loader (QuickSharedImageLoader) uses shared memory
(QSharedMemory) but it shouldn't trigger security issue from the
framework itself.

QUIP: 23
Task-number: QTBUG-136184
Pick-to: 6.10 6.8
Change-Id: Ie0c5f63e3c7d4c8557dab8c12af412fd6dad1464
Reviewed-by: Oliver Eftevaag &lt;oliver.eftevaag@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>CMake: Don't publicly propagate private Qt modules for public modules</title>
<updated>2025-07-29T17:23:25+00:00</updated>
<author>
<name>Alexandru Croitor</name>
<email>alexandru.croitor@qt.io</email>
</author>
<published>2025-07-28T10:46:48+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=487585b12d45583a254839f5591c41588397bb55'/>
<id>487585b12d45583a254839f5591c41588397bb55</id>
<content type='text'>
This causes user projects to automatically find the private Qt module
packages and expose the Private targets and their headers, without the
user project explicitly opting into this, and without showing them a
warning.

Pick-to: 6.10
Task-number: QTBUG-138712
Change-Id: Ia50bb6d128fe018c71d976f91abdab75790b6142
Reviewed-by: Alexey Edelev &lt;alexey.edelev@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This causes user projects to automatically find the private Qt module
packages and expose the Private targets and their headers, without the
user project explicitly opting into this, and without showing them a
warning.

Pick-to: 6.10
Task-number: QTBUG-138712
Change-Id: Ia50bb6d128fe018c71d976f91abdab75790b6142
Reviewed-by: Alexey Edelev &lt;alexey.edelev@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the use of GENERATE_CPP_EXPORTS argument</title>
<updated>2024-06-11T20:53:08+00:00</updated>
<author>
<name>Alexey Edelev</name>
<email>alexey.edelev@qt.io</email>
</author>
<published>2024-06-10T15:19:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=180f13fdfd7e7c83fa4d0427a7b7068375bf15e0'/>
<id>180f13fdfd7e7c83fa4d0427a7b7068375bf15e0</id>
<content type='text'>
The behavior that argument was enabling is the default one now.

Pick-to: 6.8
Task-number: QTBUG-90492
Change-Id: I11711d4c794f0b22169abb595b8ffad2eeb1300d
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The behavior that argument was enabling is the default one now.

Pick-to: 6.8
Task-number: QTBUG-90492
Change-Id: I11711d4c794f0b22169abb595b8ffad2eeb1300d
Reviewed-by: Alexandru Croitor &lt;alexandru.croitor@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the use of GENERATE_PRIVATE_CPP_EXPORTS</title>
<updated>2024-01-11T22:03:19+00:00</updated>
<author>
<name>Alexey Edelev</name>
<email>alexey.edelev@qt.io</email>
</author>
<published>2023-11-23T13:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=26096b2a323c6e561766e15b62b810dc654ad317'/>
<id>26096b2a323c6e561766e15b62b810dc654ad317</id>
<content type='text'>
Task-number: QTBUG-117983
Change-Id: I584116bfd4d47deca914910b712c2ea3295f3e7f
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
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: I584116bfd4d47deca914910b712c2ea3295f3e7f
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the use of Q_LABSSHAREDIMAGE_PRIVATE_EXPORT</title>
<updated>2024-01-09T09:40:46+00:00</updated>
<author>
<name>Alexey Edelev</name>
<email>alexey.edelev@qt.io</email>
</author>
<published>2023-11-23T07:38:14+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=f2682399b4ede6cb909c38d4794a70d37dbf5bdc'/>
<id>f2682399b4ede6cb909c38d4794a70d37dbf5bdc</id>
<content type='text'>
Task-number: QTBUG-117983
Change-Id: I81cd5377b9587468c896ed300a52510e3126065e
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: I81cd5377b9587468c896ed300a52510e3126065e
Reviewed-by: Mitch Curtis &lt;mitch.curtis@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Include what you need: &lt;QPointer&gt;</title>
<updated>2023-10-06T04:59:46+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2023-09-29T09:19:51+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=5a665bc4740106a7c3932506173229ddc8aec8be'/>
<id>5a665bc4740106a7c3932506173229ddc8aec8be</id>
<content type='text'>
All these TUs relied on transitive includes of qpointer.h, maybe to a
large extent via qevent.h, though, given that qevent.h is more or less
the only public QtBase header that includes qpointer.h, something else
seems to be at play here.

Said qevent.h actually needs QPointer in-name-only, so a forward
declaration would suffice. Prepare for qevent.h dropping the include.

The algorithm I used was:

If the TU mentions 'passiveGrabbers', the name of the QEvent function
that returns QPointers, and the TU doesn't have qpointer.h included
explicitly, include it. That may produce False Positives, but better
safe than sorry. Otherwise, in src/, add an include to all source and
header files which mention QPointer. Exception: if foo.h of a foo.cpp
already includes it, don't include again.

Task-number: QTBUG-117670
Change-Id: I9b98cda524a0e6a61be7805edda708916bb2bc2b
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All these TUs relied on transitive includes of qpointer.h, maybe to a
large extent via qevent.h, though, given that qevent.h is more or less
the only public QtBase header that includes qpointer.h, something else
seems to be at play here.

Said qevent.h actually needs QPointer in-name-only, so a forward
declaration would suffice. Prepare for qevent.h dropping the include.

The algorithm I used was:

If the TU mentions 'passiveGrabbers', the name of the QEvent function
that returns QPointers, and the TU doesn't have qpointer.h included
explicitly, include it. That may produce False Positives, but better
safe than sorry. Otherwise, in src/, add an include to all source and
header files which mention QPointer. Exception: if foo.h of a foo.cpp
already includes it, don't include again.

Task-number: QTBUG-117670
Change-Id: I9b98cda524a0e6a61be7805edda708916bb2bc2b
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Export QQuickPixmapKey and (renamed) QQuickPixmapCache for autotests</title>
<updated>2023-09-01T13:57:36+00:00</updated>
<author>
<name>Shawn Rutledge</name>
<email>shawn.rutledge@qt.io</email>
</author>
<published>2023-08-30T20:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=3df72c56e732341aa55fa8e4aff48dbaebc15018'/>
<id>3df72c56e732341aa55fa8e4aff48dbaebc15018</id>
<content type='text'>
We need to be able to do a leak check in tst_qquickpixmapcache.
So we also need to use the singleton pattern rather than
Q_GLOBAL_STATIC. Since it gets more exposed this way, make
the badly-encapsulated parts of API available only to friends.

It's always been bothersome that various other places in the code are
including qquickpixmapcache_p.h to get QQuickPixmap, and
qquickpixmapcache_p.h also does not include any class called
QQuickPixmapCache as you'd expect; while arguably, QQuickPixmapStore is
the cache. Often in comments I've needed to refer to "the code in
qquickpixmapcache.cpp" because it's a very private, inbred family of
related classes that don't match the header name. So now we split the
headers: qquickpixmapcache_p.h is for the cache, which is now called
QQuickPixmapCache; and qquickpixmap_p.h is the header most often needed
in other places. Most classes in qquickpixmap_p.h are exported, but
QQuickPixmapCache itself is not (except for autotests). It cannot be
defined in the header that gets included in Particles for example: then
it wouldn't link, because the implementation is not (and shouldn't be)
exported, and that's not what Particles needs anyway.

Task-number: QTBUG-81266
Task-number: QTBUG-114953
Change-Id: Ifd7f253b8bbaa130eb52d5546f342754f99f47bb
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to be able to do a leak check in tst_qquickpixmapcache.
So we also need to use the singleton pattern rather than
Q_GLOBAL_STATIC. Since it gets more exposed this way, make
the badly-encapsulated parts of API available only to friends.

It's always been bothersome that various other places in the code are
including qquickpixmapcache_p.h to get QQuickPixmap, and
qquickpixmapcache_p.h also does not include any class called
QQuickPixmapCache as you'd expect; while arguably, QQuickPixmapStore is
the cache. Often in comments I've needed to refer to "the code in
qquickpixmapcache.cpp" because it's a very private, inbred family of
related classes that don't match the header name. So now we split the
headers: qquickpixmapcache_p.h is for the cache, which is now called
QQuickPixmapCache; and qquickpixmap_p.h is the header most often needed
in other places. Most classes in qquickpixmap_p.h are exported, but
QQuickPixmapCache itself is not (except for autotests). It cannot be
defined in the header that gets included in Particles for example: then
it wouldn't link, because the implementation is not (and shouldn't be)
exported, and that's not what Particles needs anyway.

Task-number: QTBUG-81266
Task-number: QTBUG-114953
Change-Id: Ifd7f253b8bbaa130eb52d5546f342754f99f47bb
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
