summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'v6.5.5-lts-lgpl' into 6.5.56.5.5Tarja Sundqvist2025-07-02168-171/+171
|\ | | | | | | Qt 6.5.5-lts-lgpl
| * Revert "Update commercial SPDX-License-Identifier"v6.5.5-lts-lgplTarja Sundqvist2025-06-10168-171/+171
| | | | | | | | | | | | | | | | | | This reverts commit 4c16c8afb37f0b4cbcfb37d47baf6fc29e42c7b7. The revert is needed for the opensource releases which cannot contain commercial license headers. Change-Id: I0caa255093ecf406978de958cd3810bc9f80121e Reviewed-by: Jani Heikkinen <[email protected]> (cherry picked from commit 5d8e9a8415562ba004b38508d91e1fa0254c17d3)
* | Merge tag 'v6.5.5-lts-lgpl' into 6.5Tarja Sundqvist2025-03-04548-25496/+42569
|\| | | | | | | Qt 6.5.5-lts-lgpl release
| * Merge tag 'v6.5.5-lts' into tqtc/lts-6.5-opensourceTarja Sundqvist2025-01-28548-25507/+42589
| |\ | | | | | | | | | | | | | | | Qt 6.5.5-lts release Change-Id: Ic87e42480ba30910eade465936c0618ab9cfb971
| | * PCRE2: upgrade to 10.43Giuseppe D'Angelo2024-02-2063-8618/+19846
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apart from some source code reshuffling, 10.43's JIT has dropped its support for ARMv5. [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.43. Change-Id: I7909f0a9358f38282f5eaeacd2eb10529b47e63c Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Kai Köhne <[email protected]> (cherry picked from commit 909d881e7539bc77ab79650782ae91372fb4ee83) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 18d15404cbbbb87547e7a99623650d5ed69898c9) (cherry picked from commit 179164ef1400dc18b6a1cb2a5bf6d22bd670b5b3)
| | * QVarLengthArray: give the default Prealloc a nameMarc Mutz2024-02-182-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and use that in QVarLengthFlatMap's definition in lieu of a magic constant. Amends d4611ba3a5b46ee790e6c790ef6c3d771d3507ee. Pick-to: 6.2 Change-Id: I369f31b643789075ef6c14669b8b794ed0b3bbb1 Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit c30195a95e751552a39f99dd5833ebf722d11bc1) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit aea4e9788ab45df63dc14000321c7743dc9f3ab2) (cherry picked from commit 823a9677b42ecf75baf558f250a1bd0a79a89322)
| | * QXcbWindow::handleLeaveNotifyEvent(): Consume when leaving geometryAxel Spoerl2024-02-181-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QXcbConnection::mousePressWindow() returns the XCB toplevel window, which has consumed the window system's last mouse press. When the function returns a valid pointer, QXcbWindow::handleLeaveNotifyEvent() didn't propagate the leave event to QWSI::handleLeaveEvent(). Instead, the leave event was ingored. That behavior is correct, e.g. when a button on the main window is pressed and the mouse hovers away from the button, with the mouse button continuously being pressed. It is not correct, if the mouse cursor leaves the main window. => Ignore the leave event only as long as the mouse cursor remains within mousePressWindow()->geometry(). => Deliver the leave event, when the mouse cursor leaves the window. Fixes: QTBUG-119864 Pick-to: 6.2 5.15 Change-Id: I30a6ebedcd148285b9f17dfd87885ff67726b54c Reviewed-by: Liang Qi <[email protected]> (cherry picked from commit ec24b36d3db82c340d9386951ea48c26f77c2923) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 39e9b6b24cae07e7d11973ee680f9722ad10cf08) (cherry picked from commit 45efad7207ba47319e37be4ca5a61ef57eef7705)
| | * Avoid double-lookup in QLibraryStore::findOrCreate()Marc Mutz2024-02-181-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code is in a critical section, so don't waste time traversing the QMap twice. Now that two previous commits have re-arranged the code such that lookup and insertion are symmetric, we can combine them into a single lookup using operator[]. Change-Id: I4a10cece65b8c35d05a9b80967bf15d2e15bd73f Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 7192b1184190982b6422196121821838d9fcbba6) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 25649bcd3ba36169f77fc717e8e1b278785bdb1b) (cherry picked from commit 38c405d26a73064713da00419c28cf88616dbe4d)
| | * QLocal8Bit::convert{To,From}Unicode[win]: use more of stateMårten Nordheim2024-02-171-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like other backends we should increment the invalid character count when we output a replacement character. And we should also output the NULL character if requested! The downside here is that convertFromUnicode doesn't even have the ability to do so. So instead I added a comment explaining why it is not handled there. Task-number: QTBUG-118318 Change-Id: I57ba631aa59454e77007ab353277b7e8c2b5526a Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Edward Welbourne <[email protected]> (cherry picked from commit 3c8d71796499a2ca641758dc1e9af4a778c8ef41) (cherry picked from commit 4483e814407b4dedbcea828e30d19784a8b7e462) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 487c24bd4620ce2764bdb826e988037bd623419d)
| | * QGtk3Theme: Fix QGtk3Interface::fileIconThorbjørn Lindeijer2024-02-171-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By failing to set the G_FILE_ATTRIBUTE_STANDARD_ICON attribute, the "icon" returned by g_file_info_get_icon was always null and a GLib-GIO-CRITICAL warning was output to the console (at least since glib 2.76.0)[1]. After adding the necessary attribute, the code was crashing, because now a valid icon was returned, however the icon should not be freed[2], which is why I removed the "g_object_unref(icon)". Now it was no longer crashing, but the size of the icons was off. It was passing GTK_ICON_SIZE_BUTTON (4) to gtk_icon_theme_lookup_by_gicon where a size in pixels was expected. I chose 16 because that's the pixel size associated with GTK_ICON_SIZE_BUTTON[3]. Finally I noticed the returned icons had the wrong color. It seems that a GdkPixbuf uses RGBA8888 format[4]. Adding an explicit conversion to ARGB32 made the icons look correct for me. [1] https://gitlab.gnome.org/GNOME/glib/-/commit/ed8e86a7d41a0900d8fa57edc64264d04cf8135b [2] https://docs.gtk.org/gio/method.FileInfo.get_icon.html [3] https://docs.gtk.org/gtk3/enum.IconSize.html#button [4] https://docs.gtk.org/gdk-pixbuf/class.Pixbuf.html#image-data [ChangeLog][Platform Specific Changes][Linux] Fixed file icons provided by QFileIconProvider when using the gtk3 platform theme. Change-Id: I312ef76ac28bc28435b756d299998485db122906 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 277d77029d7fe8f46c6ee101869dcff389426cb1) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 2cfe7199a2c84371ef02e3ddd6f841f28fb2776f) (cherry picked from commit 3e284681db98fb12050e8bb3d79d28b328de8b94)
| | * QTimer: do not set active state when setting a negative intervalIvan Solovev2024-02-162-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QObject::startTimer() returns 0 in case of failure, for example when someone tries to register a timer with a negative interval. However, QTimer internally uses -1 as an invalid timer id. This could lead to a situation when the timer was not really started, but QTimer::isActive() returned true. This patch fixes it in two ways: - check the return value of QObject::startTimer() and treat 0 as an error. - do not treat 0 as a valid timer id when calculating the active state. As a drive-by: move the `using namespace std::chrono_literals;` declaration to the top of tst_qtimer.cpp, so that we do not need to repeat it in each test case. Fixes: QTBUG-122087 Change-Id: I0e21152b2173ebb5fb0dada1b99a903a321ca9c4 Reviewed-by: Ahmad Samir <[email protected]> (cherry picked from commit 612b67cf13cedb832e082308b620f948377ddf21) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 40e56294f1a082e9066df01e7ed82a0681983f01) Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit 148ec9eb9d955b808026f533e3b56917686985cd) Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
| | * QLocal8Bit::convertFromUnicode[win]: support more than 2Gi inputMårten Nordheim2024-02-161-8/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we did for convertToUnicode. To support more than 2Gi input, we need to handle the input in chunks because of the `int` parameter in the Windows API. Testing also revealed some corner cases we also need to handle, which is mostly happening when there is an incomplete surrogate pair at the end of the current input window. The test takes between 3 (plain MinGW) and 8 (MSVC with ASAN) seconds to run on my machine. Fixes: QTBUG-105105 Change-Id: I4fb0420b88ca41dfa8b561a35c6d96659bd81468 Reviewed-by: Edward Welbourne <[email protected]> (cherry picked from commit 496340f33ad48738d1595c5c4048e4a05819786c) Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit b04fe2de612ac477da39ad2342a2bd825325b03f) (cherry picked from commit 5826551a1d5e0870dc3f0ba2f61c56f99c733dd4) Reviewed-by: Qt Cherry-pick Bot <[email protected]>
| | * CMake: Fix AUTORCC_OPTIONS INTERFACE_LIBRARY error with CMake 3.16Alexandru Croitor2024-02-161-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure not to set the AUTORCC_OPTIONS property on INTERFACE_LIBRARY targets, because it's not allowed with CMake versions lower than 3.18. Amends 329dbfcc78d067d26b5a4dd99f4284900fd68f2c Fixes: QTBUG-122266 Task-number: QTBUG-106466 Task-number: QTBUG-101353 Task-number: QTBUG-121948 Change-Id: I9ab606c0b11e2b4f8689e0bde9c001f59c81fa42 Reviewed-by: Alexey Edelev <[email protected]> (cherry picked from commit b3cc89e81c149533e279df2442a79cc1dfce9ec5) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit b404d8e36193d75fb9d837489bec847e480d24f7) (cherry picked from commit a6c0f17038743e6613b5e2984c65d04e58a89c96)
| | * Fix documentation of used digest and signature algorithmAndré Klitzing2024-02-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SHA-256 is used since 2019. This amends c9f8893000249bd5701674c53d18a823b4a1c629. Change-Id: I005aa3414e4606045c8c3b01d71547efcf4122ba Reviewed-by: Assam Boudjelthia <[email protected]> Reviewed-by: Alexey Edelev <[email protected]> (cherry picked from commit ad8047daf1eee0263a3749974ed2f33faae6609f) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit eac0a67e82444550aa71c89b710acfa5d5e43689) (cherry picked from commit 683c209c1fc4364b5d5e3e79af10641fc7845825)
| | * Add fast-path in QLibraryStore::findOrCreate() for !instance()Marc Mutz2024-02-161-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there's no QLibraryStore::instance(), then there's no LibraryMap, so no need to construct a mapName we know we'll just throw away. We must keep locking the qt_library_mutex to check instance(), but we can drop it immediately if we find there isn't, and construct the QLibraryPrivate object outside the critical section (the hope is that the compiler sees this as an opportunity to tail-call). The final goal of this exercise is to get rid of the double-lookup in LibraryMap. Change-Id: I181dd2657e831a37e2d6f1c5d4df7e2a25ac48cd Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit c9b967437df344b5fc95121a3560a34bf352c696) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 0fe424a9ae3432b0e0d4e9b9951dc6e5a212e65e) (cherry picked from commit bab53da0199bef67942350197d396d2eaad853a8)
| | * Implement QTZP::isTimeZoneIdAvailable() on AndroidEdward Welbourne2024-02-163-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QTZP base implementation of the availability check was to construct the list of all available IDs, then see whether the given ID appears in it. This can be very inefficient. The ICU backend has recently grown a more efficient solution than that, matching the TZ and Darwin backends. For Android this was still very inefficient, but its instantiation is cheaper, so simply instantiate and see if the result is valid. For MS, the backend caches the list of available zones, so searching the list is a reasonable solution, given the complexity of its constructor. Add an implementation for Android and document, in the base-class, that the fall-back is only suitable for use if the list is cached. Change-Id: I9dc2ba4be1492ec811c8db6cff9490ac0303115d Reviewed-by: Volker Krause <[email protected]> Reviewed-by: Assam Boudjelthia <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit 7c502391cf73e3fa5bc02ea0b46261f0b5be0b84) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 219fbe7b21252a82aec396c4113ee8bf779ea062) (cherry picked from commit 4eb7bef0baf3aaf9b76015519ad481550b6a3251)
| | * Doc: Fix readString() and readByteArray() code snippetsAndreas Eliasson2024-02-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both of these functions return a StringResult, which has no StringResult::code member. Instead, use the existing StringResult::status member. Fixes: QTBUG-122254 Pick-to: 6.2 Change-Id: I0b9bfa1fc9a30e9c542ab90f3d8f4243bdeda762 Reviewed-by: Friedemann Kleint <[email protected]> (cherry picked from commit 57388179a41a169d4f6d65a385f605af31722bf2) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit cd664a7f396274d06343dc056f34ca9083f8dbfa) (cherry picked from commit f2c016cfea0ea62f37ef9d423f28eefdee460e84)
| | * QBackingStore: Take DPR into account when resizing with static contentsTor Arne Vestbø2024-02-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The plumbing from QBackingStore::resize to the platform backing store was missing a high-DPI conversion for the backing store's static contents, which is also expressed in the QtGui coordinate system. Pick-to: 6.2 Change-Id: Ifaac916cbf184b9386aa5feca1577a53bf2906ed Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 515822de24e45e9c6d8d59b74c557640ba68a6ba) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 4a39d2039f6439115b0bb3a917dd525af9a8ff4d) (cherry picked from commit 88fdd9b2b20179903d025ba5872fc59c446ab163)
| | * QLocal8Bit::convertFromUnicode[win]: Pre 2Gi changesMårten Nordheim2024-02-151-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we did for convertToUnicode, we do some smaller changes, like increasing indentation, and switching to using pointers and calculating the input-size in this commit, so that the real changes in the next commit are (hopefully) easier to read. Task-number: QTBUG-105105 Change-Id: I3bf1a487f63a3e24efd7a945152647dd8fc0aca8 Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Edward Welbourne <[email protected]> (cherry picked from commit cba0efc2705af1ef027603f7ee4cb60f184412d8) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 5e882b5de92b2c4b4f58f661a2e1949823742b23) (cherry picked from commit 136a7ce68d5b11e12465520257a9909a99a40db5) Reviewed-by: Qt CI Bot <[email protected]>
| | * QLocal8Bit::convertToUnicode[win]: support more than 2Gi inputMårten Nordheim2024-02-151-18/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To properly support more than 2Gi input we have to support being asked to resize more than once. Previously we would only have to resize the one time because we went from our 4K stack buffer to the final size heap buffer. But now, since our input size can only be specified in int, we have to deal with looping over the input and resizing the buffer as needed. We also have to deal with trailing data at the end of our sliding window potentially causing issues for the encoding. So we try to shrink our window when it causes issues, or store the trailing data for the next call. The >2Gi test takes about 6-8 seconds on my machine. Task-number: QTBUG-105105 Change-Id: I9a44b8f379bf2c2c58183f961544ed2f4c8c7215 Reviewed-by: Edward Welbourne <[email protected]> (cherry picked from commit a7171c62569ac2005560131a17515bb6841e9b98) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 22f2fcd35496e3c7d4ffa2fbe69d5fbd9eaef2ad) (cherry picked from commit 01a86e3e3da3ac9e771007b830597860829e8aff)
| | * QLocal8Bit::convertToUnicode[win]: split out buffer growingMårten Nordheim2024-02-151-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will need to potentially grow the buffer before appending anything to it, because if we pass in 0 as a size then the MultiByteToWideChar just returns the size we would need. If we didn't intend to do so then we would increment our output buffers even though nothing is written. And when appending single characters (like the replacement character for an invalid sequence) we need to grow the buffer as well. We'll need this all in the next commit. Task-number: QTBUG-105105 Change-Id: I94b9a0f7d18a725da01a47398163e6d0f704eefc Reviewed-by: Ievgenii Meshcheriakov <[email protected]> Reviewed-by: Edward Welbourne <[email protected]> (cherry picked from commit 1090d5dd4ae5be898d4566314eda43b0283709d9) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 0c944d361ad6344a45c0d8ece2d5ea372bb58937) (cherry picked from commit 296cd51292ac7e71ebf367f171142675e2cff8c9)
| | * Fix unsigned/signed mismatch warning in KTX file readingMatthias Rauter2024-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On MSCV x86 (32bit) the comparison of qsizetype with std::numeric_limits<quint32>::max() leads to a warning. This patch adds a static cast to avoid the warning. This is an ammendment to 28ecb523ce8490bff38b251b3df703c72e057519 Pick-to: 6.2 Change-Id: Ie50572165ac31aafa7d23570bc133c5c96cf8b00 Reviewed-by: Jonas Karlsson <[email protected]> (cherry picked from commit 6463b36da05bf57f2ff5857be6fa56e2c240fe12) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit faaef169f587084f517f16c72825f304bbef6dba) (cherry picked from commit 84b2ec6acb7b03473c8636d61ae7439a7983ac0d)
| | * CMake: Fix custom QT_DEPLOY_QML_DIR on WindowsJoerg Bornemann2024-02-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The value of QT_DEPLOY_QML_DIR was never passed to windeployqt. Fixes: QTBUG-121881 Change-Id: I993793f74d84ccb0e7c2deb72b1e33e81692ecbb Reviewed-by: Alexandru Croitor <[email protected]> (cherry picked from commit 527b9da5388a3cccb81706becbd8e40977d5db11) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit f224891038ceadfda09153f48a9de043cdebe791) (cherry picked from commit 208fb8b496a377e74648996a9c7d05e314704643)
| | * QTextMarkdownWriter: Don't word-wrap headingsShawn Rutledge2024-02-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If it wraps, the text on the next line is no longer part of the heading. Fixes: QTBUG-106526 Change-Id: I8015c948d875c6944422ef3439e3128af5b2a2e2 Reviewed-by: Axel Spoerl <[email protected]> (cherry picked from commit 65c40290b488395ee7c1fdfabc4d274889d9afab) Reviewed-by: Shawn Rutledge <[email protected]> (cherry picked from commit a7367e6a3cd8796401fd8090500954528ba962da) (cherry picked from commit d16ef4d14c237fa7536662bd69d1702ce3b37e90) Reviewed-by: Qt Cherry-pick Bot <[email protected]>
| | * QTextMarkdownWriter: Avoid omitting or misplacing ending indicatorsShawn Rutledge2024-02-151-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we need to word-wrap a paragraph after a long formatted span, write any ending markers before the newline (amends 280d679c556ab8ead4748a627d7cd4c1950027fb ). Break before a fragment if the whole thing is past the column limit; in that case, write out any ending format markers before the newline. And now we have test coverage: prepend characters one-at-a-time to a line that already has a two-word formatted span at the end, and watch it successively break after the span, in the middle, and then before, while never putting a newline before the ending markers or failing to write them. Fixes: QTBUG-116927 Change-Id: I140e10d19a491cb599bf7ecf8514af866b5383f3 Reviewed-by: Axel Spoerl <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit 908fc2e72b34073dc42ce0f2d6f7cc5adc9651d9) Reviewed-by: Shawn Rutledge <[email protected]> (cherry picked from commit 183ee5c17705d297f8c2f232a096ebfa11ffa0dd) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 2ed87fb971d27582d316036e78b8a40b966efaea)
| | * Deploy FFmpeg dlls with windeployqtJøger Hansegård2024-02-141-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we add support for dynamically linked FFmpeg, some FFmpeg libraries will be available in the bin directory. windeployqt should then copy these libraries to the application directory if the ffmpeg media backend is included. This patch extends windeployqt with support for deploying these FFmpeg libraries. Potential issues: 1. This patch hard codes the FFmpeg library names that we currently depend on, such as 'avcodec' or 'swresample'. 2. We don't take version number of the FFmpeg libs into account. This is done to reduce the maintenance burden when we upgrade FFmpeg, and should not be a problem as long as we have a single version of FFmpeg in the online installer. 3. Finding the library names is a bit quadratic in complexity, bound by the number of libraries in the bin folder, but should not be too slow. 4. We need to update windeployqt if we add or remove ffmpeg libraries. An alternative would be to identify all dlls that the ffmpeg media plugin depends on, and then deploy all files that exists in the bin directory instead of hard-coding library names. This would, however be a bit more fragile because we would not be able to warn if a library was missing. Note that this patch is a workaround. It is needed because Qt does not properly support CMake's runtime dependency features with platform plugins. Even if we added FFmpeg binaries to the dependencies set, they would not be visible at install time. This is a manual, but trivial cherry-pick from 6.6 Pick-to: 6.5 Change-Id: I4b23e50429d16e8487bf43ce9982ff37d02ffbe2 Reviewed-by: Artem Dyomin <[email protected]> (cherry picked from commit 138eebcc099e5e95ce04315ac7e1899f59399ca1) (cherry picked from commit e2fbb431cb8680695145c33eed6c343a7abe84e2) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 256bb590656b12bb4aac804e4728de8fef4e462f)
| | * Restore window state of recreated top level widget, not closest QWindowTor Arne Vestbø2024-02-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we recreate a top level QWidget due to the RHI config not matching, we need to re-apply the window state, as the state is lost on destroy(). But we should do this on the QWidget we are recreating, not on its closest QWindow. These are usually the same, so it didn't matter in practice for most cases (besides the more convoluted way of getting to the QWidget's window). But if the top level widget does not have a winId yet, the call to find the closest QWindow via QWidgetPrivate::windowHandle() will traverse from the top level widget to its transient parent widget, via nativeParentWidget, which is strange and likely a bug. As a result of that, we would store the window state of the transient parent widget, and then, once we had created() the new top level, we would apply the window state to the top level, which now had a winId. We can simplify all of this by just storing and applying the window state on the widget we are re-creating. There's no need to go via the closest QWindow for this. We do however need to set the window state on the widget's window, as going via QWidget will just bail out since the window state hasn't changed. Amends c88211d1e4ac12eb2ae4990703a4f73c7085d624 Fixes: QTBUG-119795 Change-Id: I0ad6e7bbac5f29d095cc643e9a7094784e9a2122 Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Richard Moe Gustavsen <[email protected]> (cherry picked from commit aecedfed9ab763513af8fda5a2b208b263da3f65) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit fe434acac664b5e4a94b6816e44a4ba460214fd2) (cherry picked from commit ab683da496d58631e58595b3e0d6862e0d377e6a)
| | * rhi: Make sample count selection logic be closer to Qt 5Laszlo Agocs2024-02-1410-51/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport specifically for Qt 6.5. Fixes: QTBUG-119148 Change-Id: Ia119ab3ced9da08853c608aa256bde08a6fd8d4e Reviewed-by: Andy Nichols <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit bb1d9bab36d779e595a924e3218d4066d84fca38) Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]> (cherry picked from commit 153ca77c263d9a0f515402ad35806c68aebc33be)
| | * QPlainTextEdit code cleanupAxel Spoerl2024-02-131-54/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace QObject::connect statements using SIGNAL/SLOT macros with recent API. Replace if/elseif cascades with switch statements. Remove unnecessary blank lines. Change-Id: Ib813e25530905e01f70ad52da11e69163445eaf8 (cherry picked from commit 2f3f3eb0d4d77743c135d95c792f66a4272903f7) Reviewed-by: Shawn Rutledge <[email protected]>
| | * Apple: Make Qt::Key_Backspace primary sequence for StandardKey::BackspaceTor Arne Vestbø2024-02-132-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will show up in menus as ⌫, instead of ^H, which is a better fit with the native behavior. Task-number: QTBUG-122042 Task-number: QDS-11733 Change-Id: I224971421a13baec2a0f65be8ae4a5791dabafdd Reviewed-by: Doris Verria <[email protected]> (cherry picked from commit 41b76ffbd0993997f541436b1235407b00c542f9) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 15c45090183e48368f6db5a1d1bd75036f0d8c35) (cherry picked from commit 62d2a7ec415625020250a00e0fe043902434fda1)
| | * Remove the commented legacy code from Qt6CoreConfigExtras.cmake.inAlexey Edelev2024-02-131-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I44243ed239c21382569f0c4abf9a271da42b9a19 Reviewed-by: Alexandru Croitor <[email protected]> (cherry picked from commit 74dac559c060ee24242a625fc46a8c463d06055f) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 979f6b4eb3a070a22615948f787fd17fd5401ee9) (cherry picked from commit 8d1555ea3f5967d7444952e905a4f8733dce8e70)
| | * Refix invalid glTexImage2D operation in FramebufferObjectEirik Aavitsland2024-02-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A recent change fixed the texture format parameter to be RGB instead of RGBA for opaque internal formats. However, this broke the RGB10 case, since the pixel type is then GL_UNSIGNED_INT_2_10_10_10_REV. The doc says: "GL_INVALID_OPERATION is generated if type is [...] GL_UNSIGNED_INT_2_10_10_10_REV [...] and format is neither GL_RGBA nor GL_BGRA." https://registry.khronos.org/OpenGL-Refpages/gl4/html/glTexImage2D.xhtml This modifies ba9e57d65f15c935632b0ad22db0bead9a7d5f90. Change-Id: I9a004331513179a3f840a007af0418d14e7f5dff Reviewed-by: Laszlo Agocs <[email protected]> (cherry picked from commit b0056f052d842150305d59a3ced280e1885a8619) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 6ae9a8441e35ff36a7a0d53e7d0dfc2de094854d) (cherry picked from commit 4b77494bfb1353f3dd54894bf6ce38c5816a527c)
| | * qHash: force inlining of the hash16bytes() helperThiago Macieira2024-02-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It wasn't getting inlined in aeshash256_lt32_avx256() (used by VAES + AVX512VL variant) due to a GCC __attribute__((target())) mismatch, causing a major loss of performance compared to the VAES + AVX2 variant. Comparing the throughput after this fix on an Intel Core i7-1165G7 (Tiger Lake) laptop, with qHashBits modified to statically select either [A] aeshash256() or [B] aeshash256_avx256(), out of 5 runs: dictionary numbers paths-small uuids longstrings A/B (avg) 103.7% 101.1% 103.5% 104.5% 100.3% A/B (best) 103.4% 100.9% 103.2% 103.6% 100.8% Considering that a string representation of a UUID is 37 characters (74 bytes), neither "uuids" nor "longstrings" are directly affected by this change. However, the overhead does change, with the aeshash256_avx256() needing slightly fewer instructions to reach aeshash256_ge32(). Benchmarking on an Intel Xeon Scalable 4th Generation (Sapphire Rapids), the "uuids" data set has a 10% performance loss for some reason. Change-Id: I50e2158aeade4256ad1dfffd17b1b105d3cab482 Reviewed-by: Allan Sandfeld Jensen <[email protected]> (cherry picked from commit 6ab4623cad39bec935f76e366f3f262922bde94a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 6a9be622707a485b1b5089e29d6902dc18ebbd3f) (cherry picked from commit 2b718d5ca1dc3e79ad2b0080e9bae1cc6f7b3969)
| | * QtIcoHandler::canRead(): avoid checking more than onceShawn Rutledge2024-02-112-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtIcoHandler::canRead() calls ICOReader::canRead(), which assumes that QIODevice::pos() is at the position where the .ico data starts (i.e. pos() == 0 if this is a separate .ico file). But if an AnimatedImage in Qt Quick opens an .ico file, canRead() gets called multiple times: the first is when QQuickAnimatedImage::frameCount() eventually results in QImageReaderPrivate::initHandler(); then ICOReader::readHeader() is called, which moves the file position. The second time is when QQuickAnimatedImage calls QMovie::isValid(). At that time, QIODevice::pos() == 6: we need to avoid calling ICOReader::canRead() because it's no longer at the start of the data. Without this change, AnimatedImage reports "Error Reading Animated Image File" and doesn't show anything. The fix is to store the known-good state, the same way that QTiffHandler::canRead() returns true if its d->tiff already exists (TIFFClientOpen() succeeded). The test checks that it's ok to call QMovie::frameCount() first and then QMovie::isValid(). Calling frameCount() has the effect of moving QIODevice::pos(). Task-number: QTBUG-117429 Change-Id: Ie3a5225f2cea9a0d76d685e83ce4d4a10cbe9188 Reviewed-by: Eirik Aavitsland <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit 3f515fa7aff7cb24565f0bb61b16bb2bde6faf60) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit dc314851e70a4302d2988aa0e07aeaae19dec990) (cherry picked from commit 1fb0a119ab60ebeb41d8825979f7e93ae185e8a9)
| | * Fix loading QRhiTexture from image on glesArtem Dyomin2024-02-111-37/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code should consider that image may be created by a pointer to user data, with original alignments. It means that we the way of setting parameters from raw data and QImage should be the same. In Qt Multimedia we want to pass a zero-copy image to rhi creation to get rid of an extra copy: codereview.qt-project.org/c/qt/qtmultimedia/+/537062 Aslo, data align has been fixed. Due to the documentation, GL_UNPACK_ALIGNMENT can be 8, 4, 2, 1. Let's find the biggest possible align. Task-number: QTBUG-121934 Change-Id: Ic0f1617d4699217a7549c13e916be96108183d03 Reviewed-by: Laszlo Agocs <[email protected]> (cherry picked from commit 1d6bb23f6285252f7fa6cac87003cbe0f33f51af) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 07059d4d1d167b21fb83b27f85af3668f6587146) (cherry picked from commit 9125f37017766892478b3da282f2700228be0b81)
| | * QGenericUnixServices: make sure the picker returns a colorLiang Qi2024-02-111-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This amends b646c7b76c7787cff57bca0fde04d9f58abdfbb8 . Change-Id: Ic7183c06a93085d65b31c86380889b78c714548b Reviewed-by: David Edmundson <[email protected]> (cherry picked from commit f07d8309d6c61397677703cfa195927aee0cd50e) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 3e563542b389d1ccbbfc744695fd58ab3d06ecff) (cherry picked from commit 455f9a0df8ab556379769b9bfece2f02511d70ff)
| | * QLineEdit: disable cursor blinking on hideGiuseppe D'Angelo2024-02-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLineEdit activates the blinking cursor timer when it's shown, but never deactivates it, resulting in constant wakeups even for hidden line edits. Note that this is a workaround. Qt is supposed to send a focus out event to line edits that get hidden. In some corner cases, it doesn't, and only a hide event is sent. Change-Id: Ic0645512051466ca9b1e84c54cef34c22287338b Task-number: QTBUG-52021 Reviewed-by: Richard Moe Gustavsen <[email protected]> (cherry picked from commit e35dcba5bb8cdcf578a514ad6e03ae64002c2c3a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 43362244a1860bf20b87d3317c146fd8bb203be3) (cherry picked from commit 78a3917b6bb9aab248cb1ddcc8888627bf063daa)
| | * QMessageBox: Move enum static assertions to cpp fileAxel Spoerl2024-02-112-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move static assertions for StandardButton and ButtonRole enums from header to cpp file. Use qToUnderlying instead of casting and assert types where possible. Amends 773f9ab0189bbb439c3066695c947b11a20c484f. Found in API-Review. Change-Id: Ia52886e6e33a3b94b327d17d1453e18febe6dd50 Found-by: Giuseppe D'Angelo <[email protected]> Task-number: QTBUG-119952 Reviewed-by: Marc Mutz <[email protected]> (cherry picked from commit 4cd2baae9abc07200c70cb007ce12b800a786927) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 9ed3cc0b510f0bd1c3dd7dc3c78a893e0a3c90a4) (cherry picked from commit 714bc6c4032c99c7e091e6047ab1ace0c0b1cdd6)
| | * CMake: Fix *-metatypes.json creation, take IIIJoerg Bornemann2024-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the work-around for CMake issue #19005 for Makefile generators and Visual Studio projects. Fixes: QTBUG-120317 Change-Id: I3d15f23937133a5dd4d1c2a88af0fc34d5608a77 Reviewed-by: Alexandru Croitor <[email protected]> (cherry picked from commit 654f3c5634ac9efc2257177351c8dea7c8d8875a) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 907497b87d7e0c4be96a06b817c5bf46f11ed110) (cherry picked from commit 292811ec94500a6e08c7049e1a962c764c1cdf63)
| | * Improve KTX file reading memory safetyJonas Karlsson2024-02-102-52/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use qAddOverflow/qSubOverflow methods for catching additions and subtractions with overflow and handle these scenarios when reading the file. * Add 'safeView' method that checks that the byte array view constructed is not out of bounds. * Return error if number of levels is higher than what is reasonable. * Return error if number of faces is incorrect. * Add unit test with invalid KTX file previously causing a segmentation fault. This fixes CVE-2024-25580. Fixes: QTBUG-121918 Pick-to: 6.2 5.15 Change-Id: Ie0824c32a5921de30cf07c1fc1b49a084e6d07b2 Reviewed-by: Eirik Aavitsland <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit 28ecb523ce8490bff38b251b3df703c72e057519) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit de5820c3f822b3dc0444d4aed16c6146c06f175d) (cherry picked from commit 115ea82fbceb3f013552c5e7d4280091defaeee2)
| | * QLoggingRegistry: disable copyingMarc Mutz2024-02-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not copied, and copying would probably be a bad idea, so make sure it's not done inadvertently. Change-Id: Ia7397906c0efb07ac5e079580bdbb15f4bf4911e Reviewed-by: Kai Köhne <[email protected]> (cherry picked from commit 3a2d8c5828efee9f182c260f55720d3bb6152893) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 0f840a4bdbd3dba4f384681a74673fc38842e9a5) (cherry picked from commit 1c51df8033e3914ed536ae6b76ea6daa6687b855)
| | * Add fast-path in QLibraryStore::findOrCreate() for empty fileNameMarc Mutz2024-02-101-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LibraryMap can never contain an object whose fileName is empty. To see that, observe that the only insertion into LibraryMap is in findOrCreate() and that refuses to add such objects there. But if LibraryMap cannot contain such an object, and findOrCreate({}) is just an ugly way to get a default-constructed QLibraryPrivate (a new one for each call), then we don't need to lock the qt_library_mutex to produce one, and neither do we need to construct a mapName that we know we'll not find, anyway. So drag this case to before the mutex locking and the construction of mapName. It took me more coffee than I'm ready to admit to figure this out, so leave a comment for the next reader indicating that an empty fileName is actually a valid argument. To avoid repeating the new-expression, wrap it in a lambda, together with the ref() call. Move the remaining ref() call to where it's still needed. The final goal of this exercise is to get rid of the double-lookup in LibraryMap. Change-Id: I781eafdb9516410d7a262ad27f52c38ad2742292 Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit b28bad0b20719f72fb335a65f76382132e326ad0) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit fbb2bd0a25807210ca76022cc1c9e09de206bfc9) (cherry picked from commit b08c20f62a6837eb806f42aa5973d1a546771214)
| | * QBitArray: correct inline keywordMarc Mutz2024-02-091-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mutable operator[] method was marked as inline only at the definition, not the declaration. This is known to cause compilation failures on MinGW when the function is used in other inline implementation (cf. e.g. QTBUG-56459). It's not, atm, but fix the issue proactively. Manual conflict resolutions: - also at(), ~~~Bit() and op[] const needed treatment in this Qt version - remove inline keyword on fill() outside class body for consistency Pick-to: 6.2 5.15 Change-Id: If805122d9f8dbd72641173509c4b860c20fc1cdc Reviewed-by: Fabian Kosmale <[email protected]> (cherry picked from commit 7310d2bd5562d1a88b69a544ab9b88c13cc3f978) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 9d9b912adea3dd96cf51bb54b7a5586077009fe3) Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Marc Mutz <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit a054691ac523e2c4f8cc846432399e73675296f2)
| | * StreamStateSaver: disable copy/moveMarc Mutz2024-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class has a user-defined destructor, so it mustn't be copied or moved (which here is the same as copying). Amends 3c93286f08a80b6e1821d7d63d361742b25c6578. Change-Id: I1b23588309654f34aedc0269e1d1c9511ddda2bb Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> (cherry picked from commit 1b3c8d6e95a81d307a9f7bb556aabcf7fea04588) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit ac399ca897bd0eb25dd004ce65a482f53551098d) (cherry picked from commit cfb884fe535fe4d083bc4f6b1630137e15bad448)
| | * [docs] Fix C'n'P error in QTRY_VERIFY2 exampleMarc Mutz2024-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not the _WITH_TIMEOUT variant (the timeout is missing). Amends a change preceding b24bb12f6a93b98e9bc44c99e151b995eb7cea71, the commit that moved all the documentation into qtestcase.qdoc in the first place. I didn't track the change back further than that. Pick-to: 6.2 5.15 Change-Id: I79ccd84a5dbed20012fa1a2d3561945f8a7638d5 Reviewed-by: Ivan Solovev <[email protected]> (cherry picked from commit 4af3cf275fc9f5e721fab6b05fc05cf7bdbe5c99) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit a06a78bb045aba46fec470cce5590a95eab0a30f) (cherry picked from commit 4994e92c097f495b105da5e0e4a103c1ceb72107)
| | * Update QLocale and calendar data to CLDR v44.1Edward Welbourne2024-02-097-6432/+6786
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This turns out to be identical to v44, for our purposes.) The CLDR license has been revised at v44 to "UNICODE LICENSE V3", which is now included (as LICENSES/UNICODE-3.0.txt) in addition to the old license (still in use, presumably, by UCD - at least until its next update). Some new QLocale::Language entries are needed. There is no change to the time-zone data. Some tests needed changes: * Various Arabic locales now use U+0623 (Arabic letter aleph with hamza above) in exponent separator, replacing plain U+0627 (Arabic letter aleph); it is still followed by U+0633 (Arabic letter seen). * Where likely sub-tags used to fill in world, 001, as territory for a language, they now (e.g. for Prussian and Yiddish) give specific countries. * Tamil locales now have something of a mix of inherited and localized forms for AM/PM, which looks a lot like a mistake in CLDR. Conflict resolution at 6.7: a test fixed in dev is not present in 6.7, as it wasn't reworked or given the new test-case, so that's omitted. Conflict resolution in 6.6: regenerated data using 6.6's scripts. Conflict resolution at 6.6: regenerated data using 6.5's scripts, dropped one change to data for a test added more recently. [ChangeLog][Third-Party Code] Updated QLocale's data extracted from the Unicode Common Locale Data Repository (CLDR) to v44.1. The license changed to Unicode License V3. Fixes: QTBUG-121485 Task-number: QTBUG-121325 Change-Id: Ide1a68016129526d7a5aa3fc67f1a674858696bc Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]> (cherry picked from commit 063026cc503e0c02af781caf920f5abfa0416268) (cherry picked from commit 41c786781ae3f75d02cf34c1b41e326181a03e38) (cherry picked from commit 4f88c3e3ac3d201c2f6334770ce72677319d01b8)
| | * QBitArray: avoid overflow in storage-to-size calculationsMarc Mutz2024-02-092-23/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike other containers, a QBitArray's size() is not limited by storage, but, esp. on 32-bit platforms, its size_type: A INT_MAX size() QBitArray only requires 256MiB of storage. So we can't rely on "won't happen in practice" here and need to avoid the potential UB (signed overflow) in the (d.size() * 8 - *d.data()) storage-to-logical-size calculation by using unsigned arithmetic. Use the opportunity to Extract Method adjust_head_and_tail(), centralizing the bit fiddling. Pick-to: 6.2 5.15 Change-Id: I485eafdf3ce2087a81c683672ff98a43f97c9968 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Thiago Macieira <[email protected]> (cherry picked from commit 78f8dfc5427457783ceef7d85885cddbec035ebe) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit e576d50d7cff3cacff6de576829577f391214e4b) (cherry picked from commit b84c86b13628bad6ccc3ddee62048137f3d9099e)
| | * QBitArray: don't create invalid Qt 5 streamsMarc Mutz2024-02-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt 5 streams cannot handle QBitArrays with more than INT_MAX bits, even on 64-bit platforms, because of interface constraints (size_type int). Qt 6 can, so make sure to refuse serialization of oversized QBitArrays to Qt-5-compatible streams. [ChangeLog][QtCore][QBitArray] Now refuses to stream a QBitArray with size() > INT_MAX to a Qt-5-compatible QDataStream. Pick-to: 6.2 Change-Id: I263e27bd366757c8e0360dfd337948c44d00647a Reviewed-by: Thiago Macieira <[email protected]> Reviewed-by: Allan Sandfeld Jensen <[email protected]> (cherry picked from commit 9219e8ff1d13a7e9aeb595d60aa4b3767a8941fc) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 0985c707a960988cb046b7f810c4cf5788dba30f) (cherry picked from commit 1e75a10294c850110e89532f99e12349b94c82f8)
| | * CMake: Fix undefined symbol: qt_resourceFeatureZstd issueAlexandru Croitor2024-02-081-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When cross-compiling, host rcc might generate zstd compressed resources, even though the target might not support zstd decompression. To avoid that, we made sure to disable zstd compression when using cmake api like qt_add_resources if the target platform does not support it. We did not do it for CMAKE_AUTORCC though. In such a situation, the linker would fail with: error: undefined symbol: qt_resourceFeatureZstd Add the --no-zstd option to AUTORCC_OPTIONS for targets that are created by Qt CMake public API like qt_add_executable and qt_add_library if the target platform does not support zstd decompression (check via the QT_FEATURE_zstd variable). This in turn applies to our own qt_internal_add_ API as well. Allow opting out via the QT_NO_AUTORCC_ZSTD CMake variable. [ChangeLog][Build System] Targets created with qt_add_executable and qt_add_library will now add the --no-zstd option to AUTORCC_OPTIONS when the target platform does not support zstd decompression. You can opt out via the QT_NO_AUTORCC_ZSTD cmake variable. Fixes: QTBUG-121948 Task-number: QTBUG-106466 Task-number: QTBUG-101353 Change-Id: Ibdcfecd9a4b1e206479a3f4588b1b624dd91e122 Reviewed-by: Alexey Edelev <[email protected]> (cherry picked from commit 329dbfcc78d067d26b5a4dd99f4284900fd68f2c) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit 2cf327be826251ad4b82d07366ba32f76fd800d9) (cherry picked from commit 3738a2dc6742fa3303f114537de65893103d7ca5)
| | * Update bundled libpng to version 1.6.42Eirik Aavitsland2024-02-0810-99/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Third-Party Code] libpng was updated to version 1.6.42 Pick-to: 6.2 5.15 Change-Id: Ie41c2df610fcd456af2bc4dee05dde90c426602b Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> (cherry picked from commit a046bc19e451f6f2e42ac1fcddaf5ef3efc81f0d) Reviewed-by: Qt Cherry-pick Bot <[email protected]> (cherry picked from commit cd59980f726b5254bd56197acc6f0cbe6d5f1f46) (cherry picked from commit 85ac5cb9796f40cd01cf585978a7ad54cc75f23d)