summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* moc: Do not fail to compile meta-methods containing non-const ref typesv6.4.06.4.0Fabian Kosmale2022-09-223-1/+29
| | | | | | | | | | | | | | | | | Amends 2d0c31e7d92a3e9df4ce2b9c1d41b94fb12735fc. We were using MetaTypeDecay in qTryMetaTypeInterfaceForType; but that is not used by moc when complete types are enforced. Change qt_metaTypeArray to also use qTryMetaTypeInterfaceForType, so that the code path for "force complete types"[0] and the normal one do not diverge. [0] Most easily enabled by using one of the QML type registration macros. Fixes: QTBUG-106672 Change-Id: I9bf14873d1d0c4127a676643f7e8eb77f6e42dc8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a8ccd9cd848be9aafd2d07d83a8897dc8b2a0cb3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make the clipboard paste from the outside work correctlyMikolaj Boc2022-09-213-17/+34
| | | | | | | | | | | During the previous refactoring, two exceptions that triggered native copy/paste events were omitted. Fixes: QTBUG-106668 Change-Id: Ie61dd6a0c1d9d2fdd47bd94be055d0221feae25b Reviewed-by: Lorn Potter <lorn.potter@gmail.com> (cherry picked from commit 38049164c370dd424afe0c4574b458f7bd79083b) Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Examples doc: Tags fix for QtQuick examplesBartlomiej Moskal2022-09-211-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>
* CMake: Fix return value of applicationName() on macOSAlexandru Croitor2022-09-191-9/+22
| | | | | | | | | | | | | | | | | | | | | | QCore::applicationName() is influenced by what values we insert into the Info.plist file of an application bundle. We accidentally inserted tokens like ${PRODUCT_NAME} that are meant to be expanded by xcodebuild, even when using a generator like Ninja. This caused the applicationName() to report "${PRODUCT_NAME}". Make sure to only call relevant finalizers for macOS applications when using a generator other than Xcode. Amends d5580aa7194b84306da52efb189cf126dbaee1f7 Fixes: QTBUG-106652 Change-Id: Idbc9c84557a8f17b1302e6969f6eb317e3ef225d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 865b1721bd284fac6c68eadb335507ea6cffb676) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Do not make extra copy of public headers for external headers modulev6.4.0-rc1Michal 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>
* wasm: add Window.localStorage settings backendMorten Sørvig2022-09-123-71/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Window.localStorage provides a synchronous API for storing saving data across browsing sessions, and is a good match for QSettings. Storage is limited to 5MB per origin, which should be sufficient for typical application settings. Window.localStorage is shared by all pages/apps on the origin (e.g. "https://qt.io" is one origin), which makes key collisions possible. To avoid this the key structure is "qt-v0-org-app-userkey", where both the organization and application name is used to differentiate between keys, and "v0" is a version tag to allow changing the key structure in the future. We reserve the "qt" prefix for keys written by QSettings. Add the new implementation as QWasmLocalStorageSettingsPrivate, rename the existing settings backend to QWasmIDBSettingsPrivate. Make QSettingsPrivate::create() support backend selection using the QSettings::Format enum. It now also supports selecting the Ini backend, which can be used to store larger amounts of settings, for example to a file on IDBFS. (alternatively IDBSettings + asyncify could also be used for this case) Change-Id: If70aa488635018218bc2a19803c4a719732c0004 Reviewed-by: David Skoland <david.skoland@qt.io>
* Propagate the copy event correctly to Qt widgets on WASMMikolaj Boc2022-09-103-7/+21
| | | | | | | | | | | The event should be propagated when the native clipboard is available. A recent regression caused it to be suppressed, which resulted in lack of copy/paste capabilities. Change-Id: I030a31aa0951c3813ce1d38da9a6526010b3bfc8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit adebdd0f9af0ffe47250b4a273407b84a6c61879) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* 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>
* JUnit: Don't turn seconds into kilo-secondsMårten Nordheim2022-09-091-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>
* uic: Add QPdfViewFriedemann Kleint2022-09-081-0/+1
| | | | | | | | | | | Generate the correct header and Python import for the class. Change-Id: I3682b1659e73e0ccd35b617632a56a5c14715cde Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 2ac733832dc6ed2ce2f49b331bb852512f303c00) 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-082-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. Fixes: QTBUG-104930 Change-Id: I116234708067e1717d9157aebc84da76e04a9f38 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 753bfdf6a1336cc296e5fc8175aedd000c2cc013) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use QVarLengthFlatMap for QPointingDevicePrivate::activePointsShawn Rutledge2022-09-072-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's good to use a pre-allocated set of points that never changes, because queryPointById() returns a pointer to the stored instance. If the flatmap's values are in a QList, and a mouse event comes in at the wrong time while touchpoints are already stored there, causing the QList to be resized, the returned pointer can become garbage. The pointer returned from queryPointById() is never retained for long, but in practice it turned out this could still happen, at least on X11 (perhaps because of X11 synthesizing mouse events from touch). Using a pre-allocated QVarLengthFlatMap is also an optimization: events on single-user systems are unlikely to ever cause memory allocation in this part of the code. Many touchscreens support up to 10 touchpoints, but the user might have some other input devices, plus the "core pointer" (mouse). The user could also have two touchscreens and try to use them simultaneously. d4611ba3a5b46ee790e6c790ef6c3d771d3507ee added QVarLengthFlatMap along with a test using int keys; so we expect that will keep working now. There was some issue in 2020 which is why I didn't use QVarLengthArray for the QFlatMap key and value containers to begin with. Fixes: QTBUG-106223 Change-Id: I588f66f07126b9551937a369df44f045759b473d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 83e70c315742c5de964a1fc5f973ad087f5894e2) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 88752a13778ad7cb77b8b331187ca6de52d1ab9c) Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Clear the timer target time when stopping a timer on WASMMikolaj Boc2022-09-071-0/+1
| | | | | | | | | | | | | | | | | | | Not clearing the target time makes the subsequently created timers not get their time ticks, as no actual timeout will be registered as the dispatcher wrongly assumes there will be a tick fired, which there isn't. Since there are no updates, the WASM compositor enters an infinite window update loop where it requests an update on a window, and the window requests an update on it, getting the update request back due to an animation running forever. Fixes: QTBUG-105347 Fixes: QTBUG-102004 Fixes: QTBUG-104518 Fixes: QTBUG-106153 Change-Id: I14b8dd08df81852e28e8527545c8530e0656990d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit df4be707407685d9afdeacaca172c01dd74c07a8) Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* QTextStream: Fix logical error in setEncodingMårten Nordheim2022-09-072-1/+56
| | | | | | | | | | | We only want to enable writing BOM if we have _not_ started writing. Fixes: QTBUG-106279 Change-Id: Ibcbc101b931615fddb2507f01307bf9619772d7b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit c76f7cbbcbe68bf785e8d8cbbe641cd6c0e42834) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Refix QDockwidget drag out dockwidgetThorbjørn Lund Martsum2022-09-071-1/+1
| | | | | | | | | | | | | | | In f082458c4609dfa20fdfb8bfe3e625c311b145da a fix attempt was made and in a lucky example on Mac it worked well. However, the logic was still not correct and that could be seen in other systems/examples. This patch updates the logic to be the correct behavior in general. Fixes: QTBUG-106064 Change-Id: I3b098be9942d37c367b146a7359185bcfd127762 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 06556d079afcf8c53c7dbbc0592988f52a23ff68) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix crash when setting override cursor on multiple clientsEskil Abrahamsen Blomfeldt2022-09-062-5/+5
| | | | | | | | | | | | | | | | | | | When a client disconnects, we need to disable its client cursor, otherwise there will be a dangling pointer stored in the pointer. In addition, we should reinstate the default cursor only when all clients have disconnected. Note: Patch provided in bug report. [ChangeLog][vnc] Fixed a crash when setting an override cursor on multiple clients. Fixes: QTBUG-105057 Change-Id: I0399087a924c05c8d0811b0ec0305b7857da5d3c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 9b6e79abbe66cc098ff8587c2f494716d920c4ea)
* Reland macdeployqt: Don't copy .prl files into the Resources folderMichael Brüning2022-09-051-3/+9
| | | | | | | | | | | | | | | QRegularExpression::isValid returns true on default constructed objects, so the filter was always matching even though it was not meant to be applied at all. Fix this by checking that there is a non-empty pattern string set and applying the filter only then. Fixes: QTBUG-87764 Change-Id: If37f8abaecacba3dc6f0b14da681a6e025367c10 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit aed7b5f3701ff51d088bc80c60b6bd4675a01077) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Correct typo in destination path variable namesMichael Brüning2022-09-051-6/+6
| | | | | | | | A couple of variables contained "Destianation" instead of "Destination" Change-Id: I98a15652347d1b0dad640bc49925ec296830147b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 60b069471dda1ae3cacca8cf8cfdd8a140e63563)
* tst_QSslSocket::oldErrorsOnSocketReuse - make it work with OpenSSL v3Timur Pocheptsov2022-09-051-2/+4
| | | | | | | | | | | | | | | | | The initial problem was in server not starting encryption, because its certificate was rejected by OpenSSL (v3) saying 'weak md'. After the certificate was replaced, we got another problem - due to the fixed TLS v.1 protocol for both client and server - handshake is interrupted early with 'tls v1 alert' and error message saying about not found signature algorithms. Don't fix the protocol version, use proper QSsl::SecureProtocols (default). Task-number: QTBUG-106018 Task-number: QTBUG-95123 Change-Id: I0f22f5304f4405933ad511195bc61c640518e7d8 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit a7657d3c5ff1aafe347209dc6b76bd6d127694d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix warning from testing assignmentVolker Hilsheimer2022-09-041-1/+1
| | | | | | | | | | | | | | | | | | | Tests that do QTRY_VERIFY(a = b); generate a compiler warning: using the result of an assignment as a condition without parentheses [-Wparentheses]: place parentheses around the assignment to silence this warning Do that centrally in the QTRY_TIMEOUT_DEBUG_IMPL macro definition. Change-Id: I4a4b0161c4e16c0e1e27a68f33a41efdaa2c962c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit b05a2768c2fb166bdca8f05a6833409fe5a40ee6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update zconf.h prefixes to match zlib v1.2.12 updateChristian Heimlich2022-09-032-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Historically Qt has used `Z_PREFIX` within zconf.h of its bundled zlib copy to prefix all zlib symbols with `z_` in order to prevent clashes with a potential system install of the library when linking statically; however, v1.2.12 introduced 3 new functions that were erroneously not accounted for in the upstream repository: - crc32_combine_gen - crc32_combine_gen64 - crc32_combine_op `403020` updated our bundled zlib to this new version and therefore Qt has inherited this oversight, now clashing with external zlib builds. Manually add prefix macro definitions for these three symbols to restore built-in zlib to its previous clash free state while waiting for the issue to be addressed upstream. Change-Id: I83f88109a08cf7e7117f1c94b4557a2c36f519c3 Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 54ea62756a7b0d47370551b0ec07f602cb341228) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSslSocket: regenerate certificate used for setLocalCertificateChainMårten Nordheim2022-09-0311-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>
* Windows: avoid losing transparency when pasting images into Qt appsEirik Aavitsland2022-09-021-3/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before Qt6, we would only request a DIBV5 format image from the clipboard if that format was available without synthesizing. Then, in commit 8fa91c75ad that check was believed to be needless, and removed. However, it turns out that it is needed to avoid loosing transparency information, so we revert that part and bring back the check against synthesized DIBV5. The logic is that some widely used apps will provide images in both PNG and DIB on the clipboard, and only the former can have an alpha channel. When we request a synthesized DIBV5 rather than a PNG, it seems we only get the (opaque) DIB image repackaged as a DIBV5. On Windows 11, there even seems to be an issue (possibly a Windows bug) where, after asking for a synthesized DIBV5, the clipboard contents is somehow changed in a way so that pasting again into other (non-Qt) apps later will yield a corrupted (pixel-shifted) image. (It looks like they get a DIBV5 when they expect a DIB). So avoiding requests for synthesized DIBV5 also avoids triggering that issue. Also add some logging outout to help future debugging. Fixes: QTBUG-104872 Fixes: QTBUG-105338 Change-Id: I33ffa2b50870b887a083e9bbb1b2234604e4d8ab Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 8cb78647e3d210e73a6dd4f0ca744b2887c482b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: 3rd party: Fix reference to FreeType LICENSE.txtTopi Reinio2022-09-021-1/+1
| | | | | | | | Change-Id: Id5c92938948c636765590e1bee2dd9c2baeb826b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit cf3461bab3507e834dbcaaefe59961102583675e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSslSocket::protocolServerSide - make it work with OpenSSL v3Timur Pocheptsov2022-09-021-7/+0
| | | | | | | | | | | | | | | OpenSSL v3 by default sets SECLEVEL = 2 unless overridden in conf files. SECLEVEL >= 1 means TLS <= 1.1 is disabled. Remove cases that were previously expected to work. Arguably, we should not test deprecated protocols at all, but the cases expecting a failure still work and logically correct. Task-number: QTBUG-95123 Task-number: QTBUG-106018 Change-Id: Ifa59fa902b433338dbed7abf086cfdef9470384c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit d2544b3bb274bb31e89d42b71d4ca64c4e46c126) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use testlib for multiPointRawEventTranslationOnTouchScreen eventsShawn Rutledge2022-09-022-68/+64
| | | | | | | | | | | | | | | | | | | | | | | | | It was an old test written in a very low-level way, which perhaps is ok to be independent of testlib in a few tests; OTOH, it was blacklisted on a couple of platforms. Perhaps doing touch events the standard way could be more stable. While we're at it: - verify that the touch events are accepted, and thus verify the new bool return value from commit() - implement paintEvent() to help understand the layout, and touchpoint locations - remove repeated QCOMPARE lines - skip the test if window positioning fails - try to un-blacklist it, on the assumption that window positioning failure was the reason Task-number: QTBUG-87025 Task-number: QTBUG-104656 Change-Id: Ie22eb24abf95cd849990a56212be87d06ce8e574 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io> (cherry picked from commit ef9b51ce99fb05a37888f6e2cec733df7ca53144) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows QPA: send UIA focus notification after window activationAndré de la Rocha2022-09-021-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>
* CMake: Add reference documentation for QT_IOS_LAUNCH_SCREENAlexandru Croitor2022-09-023-5/+46
| | | | | | | | | | Amends 578f4ba00c9fce9af922c9924ca104bc47e50f03 Task-number: QTBUG-104519 Change-Id: I02ea0694ead0e5b8c7a70a09cc14b51d8e374dd5 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 3eb2918f2ec95d1efd198106e78a109b1accfd86) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: Check for active surface before calling into native codeJens Trillmann2022-09-021-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | This fixes a deadlock. The deadlock occurs on an application state change. During this state change the QML plugin requests Android to create a new surface for drawing and waits on the Android thread to complete the request (QAndroidPlatformOpenGLWindow::eglSurface()). In the meantime the android a11y delegate gets requests from the android a11y interface. The delegate tries to access the a11y information through the native interface, where it has to wait for the main loop thread to get the a11y information from the QtQuick objects. This leads to a deadlock in which the main loop thread waits on the quick rendering thread, the rendering thread waits on the android thread and the android thread waits on the main loop thread. This workaround avoids this issue by not calling into native code until a rendering surface has been created. Task-number: QTBUG-105958 Change-Id: Ib99145aa689d1d62e25d25e1f4f8598d53eee3a9 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit b8a95275440b8a143ee648466fd8b5401ee1e839) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QVariant: fix conversions of Q_ENUM that are QFlags<> to stringEirik Aavitsland2022-09-022-5/+15
| | | | | | | | | | The doc of QMetaEnum::valueToKey() says to use ::valueToKeys() instead for flag types. Change-Id: I48e5ba47324137f2ce2710f1d876e93e7c562e9f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 54aa7e75b89d5d27e59594ce35206089ccc22d3b)
* Add CBOR documentationØystein Heskestad2022-09-0216-10/+236
| | | | | | | | | | | | Add documentation of usage of CBOR in convert and cbordump examples, add a CBOR overview, and add links to them other places in the documentation. Task-number: QTBUG-85912 Change-Id: I518792db63647bf9ddd4507d8d4b7ef056192f82 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 855a9ca217ad3b9d8eb8f6544698a174323843fc) Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
* QGtk3Dialog: remove the #include for empty mocThiago Macieira2022-09-011-2/+0
| | | | | | | | | | | | | | | | | | | This amends 64e6233252117415d6765b6f7a8f4df39490b678. Automoc complains: AutoMoc warning --------------- "SRC:/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp" includes the moc file "qgtk3dialoghelpers.moc", but does not contain a Q_OBJECT, Q_GADGET, Q_GADGET_EXPORT, Q_NAMESPACE, Q_NAMESPACE_EXPORT or Q_ENUM_NS macro. AutoMoc: /home/tjmaciei/src/qt/qt6/qtbase/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp:0:1: note: No relevant classes found. No output generated. Change-Id: Ic6547f8247454b47baa8fffd170ea8a8ce0ed06c Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru> (cherry picked from commit 43aaffb0185e018b666359609b5ff82686226e05) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: set _NET_STARTUP_ID at client leader windowIlya Fedin2022-09-015-6/+31
| | | | | | | | | | | This should help to overcome WM's focus prevention mechanism Fixes: QTBUG-96276 Change-Id: Ic5fb46f7ce54f0df29850725bafa364b74e30d25 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit ba8c4b4ac6df8c4318e3dd8c886aa0135628d33c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: fix D&D in same xembed clientLiang Qi2022-09-011-9/+24
| | | | | | | | | | This is kind of porting missing parts QX11Data::xdndHandleDrop() in src/gui/kernel/qdnd_x11.cpp in Qt 4. Change-Id: I3a9d657c63dbca43e33262f49484861e60f59b58 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 7bc63f345f9ab296979a75c6f4547ef038fd8b37) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* xcb: use global coordinates for position of D&D for xembed clientLiang Qi2022-09-011-1/+1
| | | | | | | Change-Id: I4805b764b11b86e2b0975ca45f7182f2719fda74 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 64cd43d394aa389ee28db5abad6a394d3ad44aea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QVariant: fix conversions of string keys to Q_ENUM that are QFlags<>Thiago Macieira2022-09-012-5/+16
| | | | | | | | | | | | | | Since Qt 6.0, QMetaType stores the name obtained from the C++ compiler, which means we know a type like Qt::Alignment by its proper, full name of QFlags<Qt::AlignmentFlag>. However, the meta object records only the bare name of the enumeration, not the full flags. Fixes: QTBUG-105932 Fixes: QTBUG-96185 Change-Id: Ic6547f8247454b47baa8fffd170eab977e306377 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 98e21f0979143a1e278572390012f021dfed1b6a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Update QMetaType::metaObject() descriptionsMike Trahearn2022-09-011-11/+13
| | | | | | | | Change-Id: Iff93f8fe2cf701d56d072e2593c76d49a70fc183 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit e27ecb203538208157e3e0e710ae54ab8bd2a844) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSslKey - make OpenSSL v3 detection fully runtimeTimur Pocheptsov2022-09-011-11/+14
| | | | | | | | | | | Otherwise, checks are useles in non-developer build. Fixes: QTBUG-106036 Change-Id: I41b6d8f250021ff9fa4981f9df9244c269ed2999 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 8e21844683d46e777db3db74df0bcf76cb9a35c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix two trivial defects in testlib docsEdward Welbourne2022-09-011-2/+2
| | | | | | | | | | | | | | A fragment of inline code wasn't wrapped in \c{}. Doing so made the quotes it was wrapped in redundant. Documentation of of QSKIP's parameter claimed it does something it should, but it's up to the client code using it to write a description that lives up to that. Change-Id: Ib355b9b85c9986f244ae01479134245f182c912c Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 6dd6bf3467040b3efceafa317de6e833ee5ec15e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Provide CMake guidance for skipping whole testsEdward Welbourne2022-09-011-5/+14
| | | | | | | | | | | The testlib docs on how to skip whole tests was qmake-specific, so add the missing details for CMake. Change-Id: I247d08262302dcedb98ffbf301932d6dd84d7ff7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> (cherry picked from commit 8814fb5f4faff2d8442e481feb1bb35c2250e930) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* macdeployqt: Fix deploying libraries with `reexport`Jonas Kvinge2022-09-011-1/+1
| | | | | | | | | | | | | | Fixes deploying libgcc, currently it fails to change the rpaths with the following error: ERROR: Could not parse otool output line: "\t/usr/local/opt/gcc/lib/gcc/11/libgcc_s.1.1.dylib (compatibility version 1.0.0, current version 1.1.0, reexport)" Change-Id: I5c866a375f88e3b222cbdbebc167b04174f753b2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 2e8c84cda25de38d64669a9d078d87c7d2bf451c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLocale: port to qsizetype [2/N]: remainder (qlocale_win.cpp partial)Marc Mutz2022-09-014-29/+29
| | | | | | | | | | | | | | | | | | | Port ints to qsizetypes where they're not blatantly wrong. This includes indexed loops that don't require the additional range, because int these days is a code smell, so if we can save the next code reader a few moments of digging to convince herself that the int is ok even in 64-bit builds, then let's do it. The Windows implementation only has the most obvious occurrences ported, because I lack platform access. Created QTBUG-105100 to track the missing changes. OSX should be fine, provided sizeof(long) == 8 on 64-bit OSX. Task-number: QTBUG-103531 Change-Id: I679183f28ed42e89e2879e29457e6a4e487fed0d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 24e8a693cdf418a90559472addfd49637ff4e270) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* [docs] Fix ints that should be qsizetype [src/corelib/text]Marc Mutz2022-09-015-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. 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) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* widgets: avoid setting X11BypassWindowManagerHint in QToolBarLiang Qi2022-09-011-1/+1
| | | | | | | | | | | | | | | when restoring state With X11BypassWindowManagerHint, the floating tool bar was created without control from window manager, which causes it stays on top at all virtual desktops. Fixes: QTBUG-105591 Change-Id: I1868f4e75e1b84f9e81c05d2e927a183a0c635ee 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 c3c4d4dda942cab92a8fdcd47a5973f5ecf59d40) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist: tst_QGraphicsAnchorLayout::layoutDirection for Ubuntu 22.04Heikki Halmet2022-09-011-0/+1
| | | | | | | | Task-number: QTBUG-87728 Change-Id: Ic78a17146c265ffe6baf6f08a0f9c29750bd0d58 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 191419e98040d7aa7c306d3ec2776d5c143d8c2d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android A11Y: Notify android about scroll eventsJens Trillmann2022-09-018-0/+40
| | | | | | | | | | | | | | | | | | | | | QtQuick Flickable has an issue that after a scroll the previously hidden items are not added to the A11Y hierarchy. That happens because Android has no ways to detect that something has changed. This patch uses the ScrollingEnd event to notify Android A11Y backend that the Flickable was scrolled, so that it could update the A11Y hierarchy and add the previously hidden nodes. The ScrollingEnd event generation is added to QQuickFlickable in a separate commit. Task-number: QTBUG-103513 Change-Id: Ie6cd688d56343bcfe7ce9580c0b9244dd6d6c068 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Samuel Mira <samuel.mira@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 3c709198838866d5122c69a30cacdc806605d0cf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: fix example repo URLMitch Curtis2022-09-011-1/+1
| | | | | | | | | | | qtquickcontrols2 was merged into qtdeclarative in Qt 6.2. Fixes: QTBUG-105004 Change-Id: Icbec8a74f1269b270be42b6a93930fb28d64af37 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 2d7b67d4917f7a489ac1b9b11fb129943a844fa9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* wasm: add Emscripten version check for appsLorn Potter2022-09-012-0/+27
| | | | | | | | | | | This will tell developers if they are using the wrong version which may not build or might cause other issues. Fixes: QTBUG-105922 Change-Id: Ic5c4549d5637182dce380e415f131e33a4da416f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit b515fa56a3144289023dc9588c5f73283599e4d4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Move Apple specific functions into a separate fileAlexandru Croitor2022-08-315-625/+631
| | | | | | | | | Task-number: QTBUG-95838 Change-Id: Ib0ce53fe0e2068482b654921ecba3232efe656c8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 51f8eaa3283daf78f32caa2f9db08860c3f7be9d) Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>