summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix cache maybe invalid while the signal is actived from queue6.3Jannis Xiong2023-01-063-1/+8
| | | | | | | | | | with default QObject::connect signal may active from next message loop. invalide cache will hit while accessibility interface is called from windows. Invalide cache will lead to a crash Fixes: QTBUG-106653 Change-Id: I5359672bcd60ed6cfb2edf238645225164cb1b88 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 80f44954f6872afb5aa37e6737c3e1ac68ad3577) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: Only access the main thread when it is not blockedJulian Greilich2023-01-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the qtMainLoopThread calls QSGThreadedRenderLoop::polishAndSync(), it waits for the QSGRenderThread. In the QSGRenderThread, QAndroidPlatformOpenGLWindow::eglSurface() calls QtAndroid::createSurface() and waits for the "android main thread" to return a valid surface. When the "android main thread" now calls "runInObjectContext" (e.g. by calling QtAndroidAccessibility::childIdListForAccessibleObject()) it waits for the qtMainLoopThread and the program is stuck in a deadlock. To prevent this, we protect all BlockedQueuedConnection from the "android main thread" to the qtMainLoopThread by acquiring the AndroidDeadlockProtector. When QAndroidPlatformOpenGLWindow::eglSurface() already acquired the AndroidDeadlockProtector we abort the current A11y call with an emtpy or default value. Note: b8a95275440b8a143ee648466fd8b5401ee1e839 already tried to fix this by checking "getSurfaceCount() != 0", but there are situations, where a new surface is being created while an old surface is still present. Task-number: QTBUG-105958 Change-Id: Ie40e8654c99aace9e69b0b8412952fa22c89f071 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit b832a5ac72c6015b6509d60b75b2ce5d5e570800) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* fix fontconfig detectionEric Lemanissier2022-12-051-1/+1
| | | | | | | | | | the "official" variable name is Fontconfig_FOUND cf https://cmake.org/cmake/help/latest/module/FindFontconfig.html Change-Id: I40ec178a18baabe47d8d66845ff03add9efc0e51 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 539165dae99d996746801da1cd8a09267cda3c42) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* BLACKLIST: tst_QApplication::sendEventsOnProcessEvents for RHEL 9.0Heikki Halmet2022-11-021-0/+1
| | | | | | | | Task-number: QTBUG-87137 Change-Id: I47d7465efe61a74fd2ae3b377442ca74984344de Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit c45cb7f0ccf4aba7973a8350f2d0ec832d2ba3ca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: properly retrieve mime type of uri to for openUrl()Assam Boudjelthia2022-10-281-5/+6
| | | | | | | | | | | | | | | | Retrieve the mime type of the url regardless of whether QFile::exists() returns true or false, because it is nonetheless required when calling openUrl(). Fixes: QTBUG-47979 Change-Id: Ia095b76d5d39addb0b115eb97ac6bbae0c18a21f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Samuel Mira <samuel.mira@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit 6f418df9cc931032ffc32a15b6ff268452fe9f01) Reviewed-by: BogDan Vatra <bogdan@kdab.com>
* Fix bool comparison in tst_qopenglwidget.cppPeter Varga2022-10-231-3/+3
| | | | | | | | | This commit amends 1ea73bc29b7542141bfcfa138cc194404c283bd5 Change-Id: I02000f86ff030ad369ccef1d4488ad22558eb974 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 55449a65285b704d53a0096689f156578d9cb0e2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: Add a way to disable accessibility via an environment varVille Voutilainen2022-10-201-0/+3
| | | | | | | | | Task-number: QTBUG-102168 Change-Id: I38956c1798b8874b3c5bc5b19c8cb09380e76cc3 Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit e7553adf16c14ec474b2659ad53757a37b336f95) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QVariant/Doc: expand what toList & toMap conversions may succeedThiago Macieira2022-10-111-5/+14
| | | | | | | | | | | | | | I don't know when conversion through sequential and associative iteratables was added, probably some time in the 5.x. QString and QByteArray got conversions to sequential iteratables for Qt 6.1 with commit c9a11022692f9a4bd36beb0cd001686694a48915. Since that was intentional, I'm just documenting reality. Fixes: QTBUG-107246 Change-Id: Id8d5e3999fe94b03acc1fffd171b863b1a0ead68 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 49e62c51f275c94501a3c42b8fbd8f11b87e9d41) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix broken Text rendering when noantialiased NativeRendering is usedDominik Holland2022-10-111-1/+4
| | | | | | | | | | | | In case antialiasing is disabled the QFontEngine::Format_Mono is used to render in the glyph cache. In this format the padding needs to be 8-bit aligned. Fixes: QTBUG-107038 Change-Id: Icf69150b6b446099ad05d706ddcab0a57f8fe0c0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit f6626cf3c3e7336567293b4b943a97b76e4e5f3d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qcore_mac_p.h: compile-optimize inline swap functionsMarc Mutz2022-10-111-6/+6
| | | | | | | | | | | | | | | | | | Instead of using the overly-generic qSwap() monster, use - qt_ptr_swap() for swapping raw pointers - member-swap for swapping smart pointers - std::swap() for swapping scalars In QtCore, this has proven to give a nice reduction in compile time for Qt users, cf. b1b0c2970e480ef460a61f37fa430dc443390358. Task-number: QTBUG-97601 Change-Id: Iad8e6c11ebcc3ff822479c36f5faff88992b1165 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit e08fa9cc01f11ce61258e0d9a138118bff3453c8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPdfEngine: port from raw zlib to qCompress()Marc Mutz2022-10-111-7/+6
| | | | | | | | | | | | Hotfix for disappearing zlib symbols caused by QTBUG-104972 and QTBUG-106542 fixes, to be merged later on. Change-Id: I21e0bf13c866fa7bb45c7587c81e7fddddad90f9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 6fdd986bd9d9eacdfa6210605eb63371136d0e55) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* forkfd: fix Clang 15 ATOMIC_VAR_INIT deprecation warningMarc Mutz2022-10-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Replace the macro use with the expansion of the macro as it appears in both libc++ as well as libstdc++. Fixes Clang 15 C++20 warning-turned-error: forkfd.c:157:39: error: macro 'ATOMIC_VAR_INIT' has been marked as deprecated [-Werror,-Wdeprecated-pragma] static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0); ^ forkfd_c11.h:51:37: note: expanded from macro 'FFD_ATOMIC_INIT' #define FFD_ATOMIC_INIT(val) ATOMIC_VAR_INIT(val) ^ /d/llvm/15/bin/../include/c++/v1/atomic:2671:43: note: macro marked 'deprecated' here # pragma clang deprecated(ATOMIC_VAR_INIT) ^ Matching OpenDCDiag pull request: https://github.com/opendcdiag/opendcdiag/pull/159 Change-Id: I0204f7fcd6039624ed75d414daf9b6a771bfd9d0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 35649760e5ec22b4dcea0729ad679f51f438573d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* [docs] QMap: fix missing toStdMap()&& overload docsMarc Mutz2022-10-111-0/+9
| | | | | | | | | | | | | | | | | Amends 14090760a87f23509b7bb5ad846537c766cb44a5. I tried to find a linkable definition of valid-but-unspecified on en.cppreference.com, but failed, so I'm using partially-formed like everywhere else in Qt docs. Ideally, we'd have the discussion of partially-formed (and valid-but-unspecified) in some extra page and simply link to it. Created QTBUG-106251 to track the issue. Change-Id: I04c60cf903b2617c89467d1d040d5aebb7eccd53 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 3cd9536b7f6224b1c8fea2e40afdb5fe7b441f82) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QString/doc: correct the record on const char* optimizationsThiago Macieira2022-10-032-2/+11
| | | | | | | | | | | | This portion of the documentation was there since the Qt 4.5 import of the repository and may have been correct at the time. They haven't been for some time and definitely aren't now. So be clear that even if there are overloads, some of them are bad ideas. Change-Id: I810d70e579eb4e2c8e45fffd1719adefb6f9f3bf Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit d46eeffe83db56aea7703d20351dde2969bf372a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPluginLoader: Fix the expected machine word for Windows on ARMMartin Storsjö2022-09-281-1/+1
| | | | | | | | | | | | | This fixes loading plugins on Windows on ARM since 892d5607d0b1c9e010ea10a1123e68741c46c21e. IMAGE_FILE_MACHINE_ARM was used for older Windows targets on ARM, in particular Windows CE. Change-Id: I61ef7a6b5920af9192c55209f2641a6c469ad1d2 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit c36412603dd798007f7acc0b12b8a7754ee90c4b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QFuture: fix handling of cancelled continuation chainSona Kurazyan2022-09-274-20/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To support cancellation of continuations attached via the parent future, for each future returned by a continuation we store a pointer to its parent (i.e. future the continuation is attached to). Later, before executing a continuation, we go through chain of parents and check if any of them is cancelled. However, if one of the parents is destroyed while the chain is executing, the next continuations' parent pointers will become invalid. So storing the parent pointers isn't safe. This commit changes the logic of handling the cancelled continuation chain in the following way: - Instead of storing a parent pointer in the continuation future's data, we do the opposite: we store a pointer to continuation's future in the parent. - When a future is cancelled, we mark all continuation futures in the chain with a flag indicating that the chain is cancelled. - To guarantee that the pointers to continuation future's data don't become invalid, we clean the continuation (that stores a copy of its future's data and keeps it alive) only when the associated promise is destructed, instead of cleaning it after the continuation is run. Fixes: QTBUG-105182 Fixes: QTBUG-106083 Change-Id: I48afa98152672c0fc737112be4ca3b1b42f6ed30 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 24dedaeaa1a94bfe9ade2da2a2c9aa112241b07a)
* Doc: Update the animation framework overviewVenugopal Shivashankar2022-09-273-205/+231
| | | | | | | | | | | | | - Clarify how the object ownership works - Language clean up - Update the snippets Task-number: QTBUG-106071 Change-Id: I7caf42a150ef82dee920df4d03db6fd988796bd4 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 4a338aa1804a4d812cf1b9bb20274e480e3c8e9c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Android: Fix Display.getRealMetrics deprecationSamuel Mira2022-09-273-36/+102
| | | | | | | | | | | | | In latest Android versions some functions related with Display metrics were deprecated. This patch changes some instances of that code to use the Resources.getDisplayMetrics or WindowManager.getMaximumWindowMetrics depending on the situation. Fixes: QTBUG-99543 Change-Id: Id9846efa877f704ef7f58c1b0820ad1527b53f09 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 413593183bbb1137fdc784d98c171d67a167bb32) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Propagate QT_HOST_PATH_CMAKE_DIR to multi-ABI external projectsAlexey Edelev2022-09-261-0/+4
| | | | | | | | | | | If QT_HOST_PATH_CMAKE_DIR is set it also needs to be used by multi-ABI external projects. Add it to a list of cmake arguments. Fixes: QTBUG-106616 Change-Id: I5b12f72cabdad86846851fb3605e5388896e5abf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 79d3fba2eb271096b3d3da3b763b18f73a225201) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update url to IAccessible2 SpecificationJan Arve Sæther2022-09-261-1/+1
| | | | | | | | | (The old one was 404 page not found) Change-Id: I06818443a1f89709b749ea66c05b4023e33b15d0 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> (cherry picked from commit 305d164508b5b7daf6627bfe9b2ccc45112207ee) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Examples doc: Tags fix for QtQuick examplesBartlomiej Moskal2022-09-231-1/+20
| | | | | | | | | | | | | | | | | | | | | Four examples in QtQuick module had wrong tag in qdocconf file: -QQuickRenderControl D3D11 Example -Scene Graph - Direct3D 11 Under QML -Scene Graph - Metal Texture Import -Scene Graph - Metal Under QML The first two are specific to Windows. The other two are IOS specific. They were all marked as "android". This commit changed those tags to correct one. Fixes: QTBUG-106436 Fixes: QTBUG-106438 Fixes: QTBUG-106439 Fixes: QTBUG-106469 Change-Id: I3d8d3cb54e4e552d7574c7c2f1d59437374c6446 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> (cherry picked from commit 7ae963292906510b4d589c2c5063520af0d67a4e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* eglfs: Add env.var. to disable the dedicated drmHandleEvent threadLaszlo Agocs2022-09-235-15/+58
| | | | | | | | | | | | | | | | | | | | | Setting QT_QPA_EGLFS_KMS_NO_EVENT_READER_THREAD=1 makes it operate like it did before 5.12.7: just calling drmhandleEvent (guarded by a mutex) on the current (main or render, depending on the QQ render loop) thread. This should not be needed and is discouraged (will certainly cause deadlocks in multiscreen setups + QQ threaded render loop on certain embedded systems), but it seems necessary to provide a way to revert back to the old way of functioning as there are reports about problems with screen cloning when the dedicated event reading thread is used. Task-number: QTBUG-91882 Change-Id: I4cddcd09149dcab9e135467b6ef0e047a2a0ecff Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Andy Nichols <andy.nichols@qt.io> (cherry picked from commit 820775166132b073a941f2389fba81db49619688) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove preprocessor conditionals for chrono includeKonrad Kujawa2022-09-198-73/+10
| | | | | | | | | | __has_include(<chrono>) is always true, because C++11 chrono include is required since 6.0. Change-Id: I50cb92571bf4f1f86e2f3f2b5f486dd3c3f30f4a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit ec2af0a9df0ac7bf9036f59a94ac3f3ef45c6740) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: send UIA focus notification after window activationAndré de la Rocha2022-09-191-0/+4
| | | | | | | | | | | | | | After a Qt application window was opened, and focus was moved to another window, and then back to the Qt application window, NVDA would only announce the window name, but not the widget focused within the window. This patch makes Qt send a notification focus for the focused widget after a window activation notification. Fixes: QTBUG-105735 Change-Id: I3426b3613ae546de0ce363f9acc5d6776c99a8aa Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 3e95884081727b84df265e2fa3456f2393e61f7b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: Fix flickering on window resize and show keyboardSamuel Mira2022-09-182-38/+50
| | | | | | | | | | | | | | | | Changed to use display getMetrics which will return the size of the application window, and use getRealMetrics to obtain the size of the largest region accessible to the app. I updated the fullscreen mode to use the new sizes. Task-number: QTBUG-41170 Task-number: QTBUG-66727 Change-Id: Ic25555ed2e1b910b3fdbc0f3a31e3a19763a04eb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com> (cherry picked from commit 072387edecb2269097821e35f1f232da6c657650) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* a11y atspi: Add null check in GetRowHeader handlingMichael Weghorn2022-09-161-3/+3
| | | | | | | | | | | | | | | Just like the GetColumnHeader case already does, check that the cell isn't nullptr before trying to retrieve the table cell interface from it. (Not doing so e.g. resulted in a crash with WIP branches of LibreOffice and Orca to make selected cells with a child index not fitting into 32 bit work, s.a. https://bugs.documentfoundation.org/show_bug.cgi?id=150683 ) Change-Id: Idd55fd1f0c49b616c732ddb683814605a46ff319 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 5462485a59373b9871261910895b9b8987442b48)
* Pass a parent pointer to the Animation instance to avoid memory leakJan Arve Sæther2022-09-162-3/+3
| | | | | | | | | | The leak is just on termination, but we should show good practices in our examples Change-Id: I39abb7545d3c68a1a537b865ba3fcb5e60c22fbf Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> (cherry picked from commit 30947c7fd4dddd76b69a3aa11567e27174d7a3ea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QObject: attempt to fix a deadlock introduced by an earlier fixThiago Macieira2022-09-161-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 71b4d4f150bc3c904a5aceec37513ddc3cd1c150 is likely the source of the issue. It fixed a race on disconnection, but kept the call to disconnectNotify() (which is user code) inside the locked section. My analysis is that by construction the sender object can't be undergoing concurrent deletion anyway at this point. All call sites (QObject::disconnect or the signal-slot activations but before the slot is activated) imply that the user code that reached here cannot itself be racing the deletion. There may be one race condition left: if the same signal was connected earlier to a slot via queued connection and that slot deletes the sender asynchronously. A synchronous deletion is handled by doActivate(), so the single-shot connection is never activated in the first place, but an asynchronous deletion could race past that check and delete the sender while QObjectPrivate::removeConnection is running. However, I'd call this a mistake in user code. [ChangeLog][QtCore][QObject] Fixed a regression from 6.3 that caused QObject::isSignalConnected() to deadlock if called from inside disconnectNotify(). Fixes: QTBUG-106025 Change-Id: Ic6547f8247454b47baa8fffd170fe0bdb62cfcaf Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars@knoll.priv.no> (cherry picked from commit 22d4c67234fd152296c3ec98fc57526356a9f62b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tests: blacklist tst_QSocks5SocketEngine::passwordAuth() on all UbuntuLiang Qi2022-09-151-2/+1
| | | | | | | | Task-number: QTBUG-106020 Change-Id: I98de5b890d23ff6721e3e5f2644a3cf73a532e6c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 6329fed0a8721a530d9dc485ecc5611a22db59d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make tst_qnetworkreply depend on the 'echo' helperMårten Nordheim2022-09-131-0/+1
| | | | | | | | | | Because it's convenient to have it build automatically. Change-Id: Iecd5bd1f9fe518f683b8ee9eb6529e48ce76fb33 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit c288733541b7842f0aa91dba378a00e6c158fa6e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Do not make extra copy of public headers for external headers moduleMichal Klocek2022-09-121-5/+8
| | | | | | | | | | | | | | | | Cmake install(TARGET) copies public and private headers even if DESTINATION is unset, therefore add workaround and remove public headers before the install call. Note the reason we do not need this copy is that we install those headers with install(DIRECTORY) to keep the directory structure as it is required for example by freefont. Fixes: QTBUG-104856 Change-Id: I494935d01163cee4f2f19b95aec97f5fd7a12f84 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 40e844918a64f1c9aa3c8293158f15755bcab5fd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QNetworkReply: Fix missing final emission of readyReadMårten Nordheim2022-09-123-4/+55
| | | | | | | | | | | | | | | | | | | | If we receive compressed data we will decompress it as it comes in, in some cases the final byte we receive doesn't actually contribute to the final output. If this byte is handled by itself then, when combined with QNetworkReply's signal compression, we ended up not emitting the readyRead signal for any of the data we received while compressing the signals. So, instead of relying on checking difference in bytes downloaded for each batch of data received we keep track of how much data we had received the last time we emitted readyRead. Fixes: QTBUG-106354 Change-Id: I4777be29b46bf0de968667e9de9d975c735ac6e6 Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 5387b88aa96d2096a3423190d1f1e5bdd2c52052) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Port QDir to qsizetype [2/3]: implementationMarc Mutz2022-09-122-24/+24
| | | | | | | | | | | | | | | | | | | | Port ints that should be qsizetype. None of these are likely to cause bugs, because both path lengths and number of directory entries are usually limited by the OS, not by INT_MAX. As a drive-by, replace length() with size() and port some functions from QString to QStringView. Manual conflict resolutions: - u'x' vs. QLatin1Char('x') - kept the u'x' version on affected lines as a drive-by Task-number: QTBUG-103525 Change-Id: I79eb6d580631346a1e77eb1c7a73a3880943794e Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 3f32b01b98f71df32281745fb54b62ab123fe424)
* tst_QSslSocket: regenerate certificate used for setLocalCertificateChainMårten Nordheim2022-09-1211-93/+511
| | | | | | | | | | | | | | | The certificate was using SHA-1 for signing its certificate, which is considered 'not good enough' by some TLS libraries. Regenerate it with SHA-512 and a larger RSA key. Also include the files needed to generate it. Task-number: QTBUG-106018 Task-number: QTBUG-95123 Change-Id: I535e047d540e663c8cec334695196044173949fc Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 28693abb6490734aac9018dd7d96d429ddba9b7e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Coin: Add core count configHeikki Halmet2022-09-121-0/+6
| | | | | | | | | | Reflects what has been configured in the Coin. Allows removing the rules from Coin and brings them visible. Change-Id: I8b3567bca3ac040725253764775249a0b0dee8eb Reviewed-by: Simo Fält <simo.falt@qt.io> (cherry picked from commit 0e7d06009e2c75664317cff987735d266805ca38) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* [docs] Fix ints that should be qsizetype [src/corelib/text]Marc Mutz2022-09-115-7/+7
| | | | | | | | | | | | | | | | For the constructors, replace int with qsizetype. For the incorrect return type in \fn of length(), drop the return type, the presence of which violated DRY, stressing the importance of that SOLID principle. Manual conflict resolutions: - qanystringview.qdoc: QLatin1StringView → QLatin1String Fixes: QTBUG-103531 Change-Id: Ic7a8e1953333c28a2722fd7f753a0b5af6777395 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 334c27dad139956135b8687bf695e3cfa0228b9c)
* FileChooser portal: set current_file only when file already existsIlya Fedin2022-09-101-3/+6
| | | | | | | | | | According to xdg-desktop-portal documentation, current_file should be set only when such a file already exists and xdg-desktop-portal-gnome enforces this by being totally broken when current_file is set to a non-existent path Change-Id: Ie3c80a7c6fd0cf23eea88ddec2149f5904c63394 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 7927b05b2fed0d6004435fcb48954f609de288ca)
* Avoid crash in QTextMarkdownWriter::writeBlock()Shawn Rutledge2022-09-101-2/+2
| | | | | | | | | | | The inner loop would go out of bounds whenever it tried to find the end of a run of spaces in a fragment that contained only spaces. Fixes: QTBUG-104999 Change-Id: I5dda03b31194fff12f6052c458a0eb85d0be5c2b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 9807c4e5afc953444a4b5a161ceb31c68fdf2484) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Un-TP QT_HOST_PATHJoerg Bornemann2022-09-091-1/+0
| | | | | | | | | | | Take QT_HOST_PATH out of technical preview. It has proven worthy of being documented as proper CMake variable. Fixes: QTBUG-106463 Change-Id: Ie1dd83eff526d5b803ea275dd3c6ecc3a7aa0e17 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 124522a0a575f52172de841068d8e949703edb37) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Pass QT_NO_PACKAGE_VERSION_CHECK to the Android multi-ABI external projectsAlexey Edelev2022-09-091-0/+4
| | | | | | | | | | | The QT_NO_PACKAGE_VERSION_CHECK flag should be considered by multi-ABI external projects when it's set in the main project. Fixes: QTBUG-106394 Change-Id: Ief4ca1272f08f074d6c93d923efabdc13acd3add Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit da635dfced9961cf9f16b273f625acd2d9b0c3ab) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Work round macOS's omission of en_DE from its own uiLanguages()Edward Welbourne2022-09-092-1/+34
| | | | | | | | | | | | | | | | | | | | | | | | When the system locale is en_DE, macOS seems to think we should use en_GB as the right translation. While that probably is a sensible choice in the absence of an en_DE translation, we should definitely use the en_DE translation if available, especially if en_GB isn't available (which lead to a fall-back to de_DE, given later entries in macOS's list). So prepend the system locale's own pcp47Name() if it (isn't the C locale and) is missing from what we would otherwise have used for uiLanguages(), after likely sub-tag perturbations. Add a test simulating (some approximation to) what macOS was doing that would have caught this case; and add a scope-guard reporter to the test to report what shows up when lists don't match. Conflict at 6.3: missing a 6.4 fix for order within the uiLanguages list that didn't get picked; swaps the last two entries in the list. Fixes: QTBUG-104930 Change-Id: I116234708067e1717d9157aebc84da76e04a9f38 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 753bfdf6a1336cc296e5fc8175aedd000c2cc013) Reviewed-by: Christian Tismer <tismer@stackless.com>
* JUnit: Don't turn seconds into kilo-secondsMårten Nordheim2022-09-081-1/+1
| | | | | | | | | | | | | | | | | | | Overlooked in the review where this changed, this value was already in seconds and needs to be converted to millis before converting back. Now printing output such as: <testcase name="initTestCase" classname="tst_QHash" time="0.001"/> Amends bb74e72aa92b599cb4c80c23161ce9b66639ec01 Fixes: QTBUG-106222 Change-Id: I1f8b774eea3dcbe2b4e822e2b0b2efb1ccc01abb Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 95e315a66e4cc6bcafc442b6e5d5377b82ba8295) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSslSocket::serverCipherPreferencies - fix for OpenSSL v3Timur Pocheptsov2022-09-082-11/+33
| | | | | | | | | | | | | | Test was not really good to start with - it was assuming the presence of particular ciphersuites. Furthermore, it was ignoring the fact that TLS 1.2 and TLS 1.3 set ciphersuites differently in OpenSSL. Task-number: QTBUG-106018 Task-number: QTBUG-95123 Change-Id: I6c8ba20154cdeb9275878462ab945729d6c82ecc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 17e8f322ebca42275d23b7a54b9f4161fc851c2b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: fix the build of native paintingLiang Qi2022-09-081-0/+1
| | | | | | | | | Fixes: QTBUG-106374 Change-Id: I91871078a0e09cdda8db4afd236a9746c72007f7 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: JiDe Zhang <zhangjide@uniontech.com> (cherry picked from commit 2585fa7c091715ba4766bf58a75ae8f632dbb37f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* uic: Remove trailing blanks generated into Python icon codeFriedemann Kleint2022-09-081-2/+1
| | | | | | | | | The indentation is only required for C++. Change-Id: Ie861b12ba262fd56995c11d883129bafd11eface Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> (cherry picked from commit d1175e20cf61fa37cff03c76d4714cc8fdbd7b8d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qUncompress: statically assert that arithmetic overflow cannot occurMarc Mutz2022-09-081-1/+3
| | | | | | | | | | | | | ... because the limit we check against, doubled, is still within the range of size_t. Took me a while to prove this to myself, so document the finding in a static assertion. Change-Id: Ib2d1bb825c1693ccc4ffa1d8fc0bd455a170337f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit c97bcaaa1aa95570bd4911294bc8a0cb557b168d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* [docs] qCompress/qUncompress: document size limitsMarc Mutz2022-09-081-0/+22
| | | | | | | | | | | | | | Zlib uses ulong in the interface, which, at least on Windows, is a 32-bit type, so qCompress cannot consume input and qUncompress cannot produce output greater than ULONG_MAX, even on 64-bit platforms. Document this limitation. Task-number: QTBUG-104972 Change-Id: I56c926a67f8705ef773977a86e157e6eb26aa585 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 6bdde5295708df78db45c120d123945447f00232) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: allow user specified boolean values to have any caseRolf Eike Beer2022-09-071-1/+1
| | | | | | | | | | | | | | | | | | | | When running something like this: cmake -D FEATURE_xkbcommon=On qtbase one would run into issues like: CMake Error at cmake/QtFeature.cmake:254 (message): Sanity check failed: FEATURE_xkbcommon has invalid value "On"! Call Stack (most recent call first): cmake/QtFeature.cmake:396 (qt_feature_check_and_save_user_provided_value) cmake/QtFeature.cmake:606 (qt_evaluate_feature) cmake/QtFeature.cmake:575 (qt_feature_module_end) src/CMakeLists.txt:12 (qt_feature_evaluate_features) Change-Id: I33a921625b97aeb3c423cb7c1fb1bd3b05ce24a7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 60829b0b257e62056aa32a7e58863b2c30bbdc89)
* QFileSystemEngine/Unix: fix unneeded casts from errno values to intMarc Mutz2022-09-071-8/+8
| | | | | | | | | | | | | | | In the same file, errno and EACCES are passed unadorned to qt_error_string(), proving the int casts on the other calls aren't necessary. Remove them; ints are a code smell these days. Task-number: QTBUG-103525 Change-Id: I7209a209141195090878944ae66da3c85bbe4135 Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 8b514c9c588f5570526c9ce0376bffbf431843f8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSsSocket: fix verifyClientCertificate with OpenSSL 3Mårten Nordheim2022-09-071-1/+1
| | | | | | | | | | | | | OpenSSL 3 by default disables TLS < 1.2 in the conf files. We're not going to work against that, so we bump the version of TLS used. Keep the client-side TLS 1.0 Or Later just to keep testing that this part works. Task-number: QTBUG-95123 Task-number: QTBUG-106018 Change-Id: Ia6cb10495875de232d69a886832ae74c5f5ac15f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit b4a5f0c57cd9d14dc5a8e825aad6cc329dae1b23)