[qt/qt/qtbase]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtbase Pushed by mirror-service into branch '6.12'. Changed from a8e7849a45bc34eb5773a2c99f33141634ee306d to 052e4ac9898cf27fab02d7a5459d1e5796b443ca Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 01541b626150673f780e818fc588fc14f7f41ae9 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 05/08/2026 at 20:36.. qmake: Mask Qt's Clang module maps when building with Clang modules The qmake counterpart of 0688b69ea04126918360c0ea3e919c03f499050a. We ship a Clang VFS overlay next to each module map that masks it, and now pass it via -ivfsoverlay for projects that we detect are building with C++ Clang modules, so that including a Qt header doesn't implicitly turn into an @import of the corresponding Qt module, and a build of that module. CONFIG += no_qt_clang_module_maps opts into the masking for projects we can't detect, for example when the flags come from a compiler wrapper, and CONFIG += qt_clang_module_maps opts out of it. As on the CMake side we limit this to Clang 16 and later, which is where the overlay's 'root-relative' key was introduced. Task-number: QTBUG-141360 Change-Id: I4dbeacfc37acefd249ad58d931f1dd2665f25083 Reviewed-by: Orkun Tokdemir <[email protected]> (cherry picked from commit 8d0678d636ed43c8b885884d4510fb6e72c55698) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/01541b626150673f780e818fc588fc14f7f41ae9 Git commit b6e897d0973578a899ff6044ca742a4accd6541f by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 05/08/2026 at 20:36.. cmake: Only mask Qt's Clang module maps when C++ modules are enabled Clang only enables modules for C++ input if -fcxx-modules is passed along with -fmodules, so plain -fmodules doesn't turn our includes into implicit imports, and leaves nothing to mask. Amends 9f5bef9a320a688625219c236f639f7dc5fa54d6. Task-number: QTBUG-141360 Change-Id: I9aabf290a9728d0e0b619dd58567d8551be7a9a8 Reviewed-by: Orkun Tokdemir <[email protected]> (cherry picked from commit 074753db85fbfad684009e2f8104b4618d9396fe) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/b6e897d0973578a899ff6044ca742a4accd6541f Git commit b824b65611409ef9723a38fc7f593eab9a00e765 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 06/08/2026 at 00:58.. CMake: Document why we write no qt.conf when deploying on macOS Both the code comment and the qt_deploy_runtime_dependencies docs said macdeployqt always writes a qt.conf: the comment explained that we left it to macdeployqt because it would complain about an existing file, and the docs promised a qt.conf is always written for a macOS app bundle, regardless of GENERATE_QT_CONF. That stopped being true in 1ccc66ceb936e4a0968368d7e83a4937d3f7ce0c, where macdeployqt stopped writing a qt.conf into the bundle. Writing none is still right, for a different reason: a deployed app bundle follows Apple's bundle conventions, and as of b2866ff0d0b4c1cd0885fc5ab5c356384fbd6b4d QLibraryInfo reports those locations for the application prefix without needing a qt.conf. Say that in both places, and that GENERATE_QT_CONF is consequently ignored. Change-Id: I79a6ada275a4265e2193dee1e79a82d1fed14404 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 3c28825468c6c4fbfc6504ae916d7fbc91511ead) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/b824b65611409ef9723a38fc7f593eab9a00e765 Git commit 76ebe42937677a208ec67f6e457ca3f8bee74b57 by Qt Cherry-pick Bot (on behalf of Tor Arne Vestbø) on 06/08/2026 at 00:58.. Bump supported Apple SDK version to 27 Change-Id: I8417c22e42b1a2d400f9c2721192b866b2d6fb06 Reviewed-by: Doris Verria <[email protected]> (cherry picked from commit b23e1b97e213ea24a7498653c3c4e86238eb48f0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/76ebe42937677a208ec67f6e457ca3f8bee74b57 Git commit 06c34035d01ae813072dbb669afefc3aa051ac8d by Qt Cherry-pick Bot (on behalf of Жора Змейкин) on 06/08/2026 at 00:58.. QFileDialog: Fully encode persisted URLs Qt 5 and Qt 6 use different QSettings INI encodings, while QFileDialog stores its global state in the same QtProject.conf file. Alternating between versions can therefore repeatedly re-encode non-ASCII URL values and make the settings file grow without bound. Store shortcuts, history, and lastVisited using QUrl::FullyEncoded. This keeps the values ASCII-only without changing the settings keys or their cross-version behavior. Pick-to: 6.11 6.8 Fixes: QTBUG-133804 Change-Id: I6a2ef261a76850fea6eb15f1b6ddbc0e3fa014b6 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 0f7a0b92948511b28972f861513c735d9f2a5ceb) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/06c34035d01ae813072dbb669afefc3aa051ac8d Git commit 590fc317aa20649d267bc296a4f5682b56ccf36a by Qt Cherry-pick Bot (on behalf of Jean-Michaël Celerier) on 06/08/2026 at 00:58.. windows: don't require windows.graphics.display.interop.h mingw-w64 does not ship that header, so gate the cpp_winrt display-interop code on it being available. Change-Id: I55d981992d3e26ed684760dcee9078834e902d2d Reviewed-by: Tim Blechmann <[email protected]> Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: Oliver Wolff <[email protected]> (cherry picked from commit d149dbec900c6b542c272afc89fed22b12067571) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/590fc317aa20649d267bc296a4f5682b56ccf36a Git commit 67cf58795f087fab925ab5e8dab5c6af8384cf4b by Qt Cherry-pick Bot (on behalf of Jean-Michaël Celerier) on 06/08/2026 at 00:58.. macOS: Guard against a QNSView outliving its QCocoaWindow A QNSView can outlive its QCocoaWindow, for example when a native embedding host holds a reference to the view obtained via winId(), or when a foreign window created via QWindow::fromWinId() retains it. AppKit will then still send messages to the view, e.g. when the view's layer backing is re-evaluated or the view is hidden, so guard the m_platformWindow dereferences in shouldUseMetalLayer, setLayer: and viewDidHide. setLayer: still forwards to super when there is no platform window, so that AppKit records the layer and only the Qt-side setup is skipped. Task-number: QTBUG-148721 Pick-to: 6.11 6.8 Change-Id: I1fa2bbf2c9bfb1ed604e7bd3bce66a58d0f0c4a8 Reviewed-by: Tor Arne Vestbø <[email protected]> (cherry picked from commit 1d20cd1528f8f06c9123496361c544105743b7e8) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/67cf58795f087fab925ab5e8dab5c6af8384cf4b Git commit 04c9aa73424c813625f7af70a12622d21af372dd by Qt Cherry-pick Bot (on behalf of Jean-Michaël Celerier) on 06/08/2026 at 00:58.. macOS: Guard against window destruction during event delivery The synchronous event deliveries in handleExposeEvent, handleWindowStateChanged and windowDidChangeScreen may also re-enter the application, which can destroy the QCocoaWindow itself, for example if the application reacts by calling QWindow::destroy(). The code following the delivery then operated on a deleted 'this'. Guard these call sites with a QPointer self-check. Task-number: QTBUG-148721 Pick-to: 6.11 Change-Id: I5b5b692a539c0983a6cd017378680026edf75292 Reviewed-by: Tor Arne Vestbø <[email protected]> (cherry picked from commit 50b6c616a875990d0a56e7dcd8ef1cf005b70bec) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/04c9aa73424c813625f7af70a12622d21af372dd Git commit 0790c38c6ca0334f9ce6bfd3e64de30d84340899 by Qt Cherry-pick Bot (on behalf of Jean-Michaël Celerier) on 06/08/2026 at 00:58.. qarraydata: prevent a -fsanitize=integer warning The binary negation of a signed number would cause a change-of-sign warning there. Pick-to: 6.11 Change-Id: I78840697f72cd0e7120aebd2ef78ecf2a4d90a9a Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 38520c83e063a0df038eef0ce380f2e685880db8) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/0790c38c6ca0334f9ce6bfd3e64de30d84340899 Git commit e969b9b12f213b46e30c5412114c1d67e6b43552 by Qt Cherry-pick Bot (on behalf of Andreas Hartmetz) on 06/08/2026 at 00:58.. QAIMTester: Don't call data() on invalid parent indexes Some proxy models assert that all indexes passed to data() are valid, which interferes with testing and debugging more important things. As per the discussion around this MR, it is indeed part of the QAIM contract not to call data() with an invalid index. Pick-to: 6.11 6.8 Change-Id: I85ea9e8ac32e8bef4aee11fea3b7c2ae26205061 Reviewed-by: David Faure <[email protected]> (cherry picked from commit f1bd249b5c0b4a7e7e2e19013afb122516e6b6f0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/e969b9b12f213b46e30c5412114c1d67e6b43552 Git commit de6ca724988b4293257876b36321105697faf88b by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 06/08/2026 at 00:58.. QDirListing: reorganize the engine/native split as a std::variant QDirListingPrivate distinguished its two iteration modes implicitly, by whether the QAbstractFileEngine pointer was null, and kept the members of both modes side by side: the engine and its iterator stack for one, the native iterator stack for the other, plus a single shared visitedLinks tracker. An upcoming change will change how we detect symlink loops, which will require two different types of visitedLinks tracker. Rather than grow yet another pair of parallel members guarded by the same implicit "is engine null" condition, model the choice directly: a std::variant of an EngineData and a NativeData struct, each owning only the state its mode needs, selected in beginIterating(). Re-selecting the alternative on each begin() also destroys and rebuilds that mode's tracker, which removes the need for std::optional and resetting by hand. This is a pure reorganization; loop detection still keys on canonicalFilePath() exactly as before. Co-authored-by: Copilot <[email protected]> Change-Id: I1780b5fe9d414cc47308fffdf7ad1531ae49ae2a Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit fa13801c6afb4bc6f8e2c09da6f39ef53203095e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/de6ca724988b4293257876b36321105697faf88b Git commit 052e4ac9898cf27fab02d7a5459d1e5796b443ca by Qt Cherry-pick Bot (on behalf of Thiago Macieira) on 06/08/2026 at 00:58.. QDirListing: test that we behave properly with an unreadable dir We are not intending to test that the OS is working properly. But we need to check that QDirListing is working properly when faced with an unreadable sub-directory or a symlink to one such. There are a couple of potential pitfalls in getting canonical paths when unreadable directories are in the mix. This commit adds a test that drops all permissions on a subdirectory (which also holds a symlink pointing back at it from the parent) and confirms a recursive listing still yields the subdirectory and symlink entries both with and without FollowDirSymlinks. It checks that the file inside isn't listed, which would indicate that the test isn't testing what it's supposed to test. Pick-to: 6.11 Change-Id: I7ba1745c04c176316576fffd2e433c7406509918 Co-authored-by: Copilot <[email protected]> Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit 9cac002cffc38860ec8fcf9882b618c244da5b03) Reviewed-by: Qt Cherry-pick Bot <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/052e4ac9898cf27fab02d7a5459d1e5796b443ca