summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Update bundled libjpeg-turbo to version 3.1.3HEADdevEirik Aavitsland4 hours5-12/+43
| | | | | | | | [ChangeLog][Third-Party Code] libjpeg-turbo was updated to version 3.1.3 Pick-to: 6.11 6.10 6.8 6.5 5.15 Change-Id: Ic402772f54e34082694693e0fc6b61bd0c556825 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
* QNetworkAccessCache: delete unused signal and emission functionMårten Nordheim4 hours2-16/+0
| | | | | | | | | | | I'm not sure when it was last used, or what the purpose was, but it's not in use today, so let's take the opportunity to delete it. Somewhat amends commit 587d64507a0e419c089a83d0cf30026bf3b6bd20. Pick-to: 6.11 6.10 Change-Id: I9facb8cc3250eeaf6d9196f9f5594e1554f5cfa6 Reviewed-by: Mate Barany <[email protected]>
* QIORing/win: resolve functions at runtimeMårten Nordheim7 hours3-22/+96
| | | | | | | | | | To allow binaries to be used on windows 10 even if compiled with support for QIORing. Task-number: QTBUG-136763 Pick-to: 6.11 Change-Id: I1cc15c794e90dd5e8fe82391075f7ee8c532c68a Reviewed-by: Ivan Solovev <[email protected]>
* QRandomAccessAsyncFile: fallback to threadpool on errorMårten Nordheim9 hours8-164/+360
| | | | | | | | | | | | | | | | If the native backend (where one is supported) reports a failure in its init() function, fall back to create a backend of the threadpool variant. This required changing the hierarchy a bit so they can co-exist - without turning this into a fully plugin-ized class - as well as making the thread and future features mandatory for the async-io feature, so there is an actual fallback guaranteed to be available. Task-number: QTBUG-136763 Pick-to: 6.11 Change-Id: Ib87c42bb67eec446278be2e43ca76f594155ab84 Reviewed-by: Ivan Solovev <[email protected]>
* MSVC: re-enable Q_CONSTINIT for msvc >= 1940Mårten Nordheim9 hours1-1/+1
| | | | | | | | | | | According to the linked bug report it was fixed for VS 17.10 which lists 19.40 as the bumped version for its toolset. https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.10#17100--visual-studio-2022-version-17100 Pick-to: 6.11 Change-Id: I540b4a9b9a00ec573052f4cd90ac5be0a9549532 Reviewed-by: Thiago Macieira <[email protected]>
* macOS: Properly compute screen safe areas for non-primary screensTor Arne Vestbø10 hours1-14/+11
| | | | | | | | | | | The logic assumed the relevant screen was the main/primary screen, which caused us to misreport the safe areas for full screen windows that covered the notch when that display wasn't the main screen. Fixes: QTBUG-142465 Pick-to: 6.11 6.10 6.8 Change-Id: I5c5f25b87ecd90858234e7ae6de7c4127c4a9551 Reviewed-by: Richard Moe Gustavsen <[email protected]>
* QEasingCurve: fix qFuzzyCompare use in TCBPoint's op==Marc Mutz14 hours1-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | qFuzzyCompare() requires that neither argument is numerically zero. This cannot be guaranteed for the parameters of a "TCB" spline; indeed, Wikipedia says t = b = c = 0 is "the default": https://en.wikipedia.org/wiki/Kochanek%E2%80%93Bartels_spline#Parameters_and_Effects Fix by using the new QtPrivate::fuzzyCompare() function, which does things in the correct way. As a drive-by, put the operators at the beginning of continued lines, as requested by https://wiki.qt.io/Qt_Coding_Style#Line_breaks Item 2, make the operator a hidden friend instead of a member function, and explicitly use qFuzzyCompare() instead of operator== for the QPointF member. The latter drive-by change will need to be dropped from the 6.5 pick-to, because the overload didn't exist in 6.5, yet (added by fa0d77e290f5ccb5afa7d02716f8726aa6b810e6 for 6.8). Amends b9f0bde16e85161666d5090952955bebacc40f89. Pick-to: 6.11 6.10 6.8 6.5 Task-number: QTBUG-142020 Change-Id: I76d1adefd39154d7a39454d676dbfd5dfcaf9c1d Reviewed-by: Edward Welbourne <[email protected]>
* QToolTip: use qobject_cast<>/metaObject instead string compareChristian Ehrlicher19 hours3-9/+14
| | | | | | | | | | | Use qobject_cast<> or the comparision of the QTipLabel staticMetaObject pointer to determine if the object is a QTipLabel instead relying on a string compare. This will give us a compile time error when the name of this internal class changes or goes away. Pick-to: 6.11 6.10 6.8 Change-Id: Ie54342bd87fcb6688f082268464bfda5134de04c Reviewed-by: Volker Hilsheimer <[email protected]>
* QTlsBackendOpenSSL: do not use broken symlinks as cert pathsErin of Yukis26 hours1-2/+7
| | | | | | | | | | | | | | | | | | | | The QTls OpenSSL backend on Unix should ignore any broken symlinks encountered rather than attempting to add the empty certificate path generated after path canonicalization to the list of trusted system certificates. Current Qt code rejects such empty paths due to using `QSslCertificate::fromFile`, but Qt 6.9- instead used `QSslCertificate::fromPath` which (before Qt 6.9.2) used to interpret an empty path to mean “add everything below the current working directory as potential certificate”! On all newer versions this only avoids unnecessarily adding an empty path to the list of certificates. Change-Id: I94136b33670be2fa42531fc3c74db432bad67f4a Pick-to: 6.11 6.10 Reviewed-by: Mårten Nordheim <[email protected]>
* Doc: Extend QT_ANDROID_DEPLOYMENT_TYPE documentationJoerg Bornemann3 days1-0/+4
| | | | | | | | Explain where to set the variable. Task-number: QTBUG-121706 Change-Id: Iebe2fe2f36b7ec3706549869c85f485a67d28156 Reviewed-by: Alexandru Croitor <[email protected]>
* QWindows11Style: Use textOnAccentPrimary WinUI3 color for checked ButtonWladimir Leuschner3 days2-12/+8
| | | | | | | | | The text color for accent buttons is textOnAccentPrimary. Pick-to: 6.11 6.10 Change-Id: Id9088439374186d45a8f07e0db8ab688d7266602 Reviewed-by: Wladimir Leuschner <[email protected]> Reviewed-by: Oliver Wolff <[email protected]>
* QHttp2Stream: add Configuration with downloadBuffer optionDennis Oberst3 days2-14/+79
| | | | | | | | | | | | | | | | | | | Especially useful for clients who don't use the PUSH_PROMISE functionality and don't require buffering the data. We add the QHttp2Stream::Configuration struct to allow customizing stream behavior. Every stream comes with a configuration and the default constructed objects represents that. The configuration is per-stream and does not change during the lifetime. Add a testcase with further extensibility in mind for further stream configurations. Task-number: QTBUG-142473 Pick-to: 6.11 6.10 Change-Id: I1e862f4996baa61f024f40516f74fc052a9b57c4 Reviewed-by: Alexey Edelev <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]>
* QHttp2Stream: append message data before dataReceived()Dennis Oberst3 days2-2/+10
| | | | | | | | | | | | | | | ... so that there is a way to access downloadBuffer() / takeDownloadBuffer() when the signal is emitting and not afterwards. Add the 'last()' functionality (c.f. QList::last) so that we can get a cheap reference to the just inserted buffer entry. Task-number: QTBUG-142473 Pick-to: 6.11 6.10 6.8 Change-Id: I263322ec8a83cd29294b60c139a1ec3dab698ecb Reviewed-by: Mate Barany <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]> Reviewed-by: Alexey Edelev <[email protected]>
* Doc: Qt Core: Document QUntypedPropertyBindingTopi Reinio3 days1-6/+14
| | | | | | | | | | | | | | | | | QUntypedPropertyBinding is declared in a public header file and referred to in the documentation of QUntypedBindable. It has multiple documented members but the \class topic was missing. Fixes QDoc warnings such as (qdoc) warning: No output generated for function 'QUntypedPropertyBinding::QUntypedPropertyBinding()' because 'QUntypedPropertyBinding' is undocumented Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: Id419bc448d15fb66ac74d396ea81320aba12696b Reviewed-by: Fabian Kosmale <[email protected]>
* Doc: Qt Core: Mark private APIs internalTopi Reinio3 days7-0/+16
| | | | | | | | | | Resolves multiple QDoc warnings of type "No output generated for X::Y because X is undocumented." Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: I9b2d7b1ecfb694316e32801839f89d543ea2f861 Reviewed-by: Topi Reinio <[email protected]>
* QFontEngine: Replace divisions by bitshiftsRobert Löhning3 days1-3/+3
| | | | | | | | | | | ...so static code checkers will not complain about ignoring remainders or fractional parts of the division anymore. Change-Id: If57e1d3a9229424ac382c5f1f6aee8ddba481714 Coverity-Id: 898602 Coverity-Id: 898603 Pick-to: 6.11 6.10 6.8 6.5 Reviewed-by: Edward Welbourne <[email protected]>
* Doc: Qt Core: Fix documentation linking issuesTopi Reinio3 days4-8/+8
| | | | | | | | | | | | | | | | | | | | Fixes the following QDoc warnings: * (qdoc) warning: Can't link to 'qt_add_android_permission()' * (qdoc) warning: Can't link to 'raiseError(const QString &message)' -> raiseError() now takes QAnyStringView * (qdoc) warning: Can't link to 'I18N Example' * (qdoc) warning: Can't link to 'Hello tr() Example' -> Examples were removed, replace with 'Localized Clock' example * (qdoc) warning: Can't link to 'QCharConverter::FinalizeResult::Error::NoError' Pick-to: 6.11 Change-Id: I8e11a8896dd10652852e81c5d7ddf080f69aba37 Reviewed-by: Topi Reinio <[email protected]>
* Doc: Qt Gui: Mark private APIs \internalTopi Reinio3 days14-3/+42
| | | | | | | | | | Resolves multiple QDoc warnings of type "No output generated for X::Y because X is undocumented." Pick-to: 6.11 Task-number: QTBUG-141665 Change-Id: I6a597f6979151565fcee36964f892976964be75d Reviewed-by: Topi Reinio <[email protected]>
* Doc: Qt Gui: Add dependency to Qt Quick ControlsTopi Reinio3 days1-1/+2
| | | | | | | | | | Qt Gui documentation refers to a number of types/topics from the Qt Quick Controls module, add it as a documentation dependency to fix linking issues. Pick-to: 6.11 6.10 Change-Id: I541cc637c6de1daa822609ab596f82adfc0f9e45 Reviewed-by: Topi Reinio <[email protected]>
* Bump version to 6.12.0Jani Heikkinen3 days3-3/+5
| | | | | Change-Id: I788b0b0b10284703aaf4153e2b714444a3fbcf44 Reviewed-by: Antti Kokko <[email protected]>
* CMake: Enable the openssl-hash feature by defaultJoerg Bornemann3 days1-1/+0
| | | | | | | | | | | | ...if openssl-linked is enabled. [ChangeLog][QtCore] The openssl-hash feature is now enabled by default if openssl-linked is on. This enables a more robust implementation of QCryptographicHash. Fixes: QTBUG-132271 Change-Id: I1f39238fa316543e125e4535d7608c0e8e59278d Reviewed-by: Thiago Macieira <[email protected]>
* Doc: Remove unreferenced and broken \externalpage entryJerome Pasion4 days5-26/+1
| | | | | | | | | | | -Some URLs give 404 -Some bugreports were resolved in Qt 5.1x -Some URLs no longer referenced in Qt 6 Task-number: QTBUG-142088 Pick-to: 6.11 Change-Id: Ic4ae92b3f74ce6f62484453b8943d6b149269bc3 Reviewed-by: Venugopal Shivashankar <[email protected]>
* QReadWriteLock: fix data race on weakly-ordered memory architecturesMiao Wang4 days1-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Testcase: ./tst_qreadwritelock heavyLoadLocks When the test run under release mode on arm64, all the spawned threads may block without this fix. When the test run with optimization enabled and assertions enabled and the assertions for !mutex.try_lock() are removed from the entry of QReadWriteLockPrivate:: lockFor{Read,Write}, random assertion failures may happen without this fix. The reason for the race is because when a lock is uncontended locked and being converted into a contended lock, no synchronization happens between the initialization of new allocated QReadWriteLockPrivate object and the use of the existing QReadWriteLockPrivate object in lockFor{Read,Write}. QReadWriteLockPrivate objects are allocated from a statically allocated freelist and it is of high probability that the newly allocated object has just been released. The possible execution order that leads to a data race is described as follows: Suppose there are three threads T1, T2, and T3, and T1 holds the write lock initially. T1 first releases the lock, and then gains the read lock, while T2 tries to gain the write lock, and T3 tries to gain the read lock. The interleaved execution order is as follows, where <- means a normal memory write, <1> means a memory address of a QReadWriteLockPrivate object, : means a return value, #n means a synchronization point. For abberviation, wc denotes writerCount and rc denotes readerCount. The .h/.c and the number in the parentheses denotes the line number in qreadwritelock.h/.cpp. T2 T1 T3 unlock() lockForRead() d = d_ptr.loadRelaxed(): <1> (.h 52) d = d_ptr.loadRelaxed(): <1> (.h 52) <1>->mutex.lock() (.c 393) d = d_ptr.loadAcquire(): <1> (.c 229) <1> <-{wc = 0}(rc should be 0) (.c 397) <1>->mutex.lock() ... (.c 236) d_ptr.storeRelease(null) #1 (.c 409) <1>->release() (.c 410) <1>->mutex.unlock() #2 (.c 412) lockForRead() <1>->mutex.lock() returns #2 d = d_ptr.loadRelaxed(): null (.h 93) lockForWrite() d_ptr.testAndSetAcquire(1) #3 (.h 81) d = d_ptr.loadRelaxed(): 1 (.h 116) val = allocate -> <1> (.c 321) // ^ suppose <1> is reused here <1> <-{rc = 1}(wc should be 0) (.c 325) d_ptr.testAndSetOrdered(<1>) #5 (.c 326) d = d_ptr.loadAcquire(): <1> #6 (.c 335) d_ptr.loadRelaxed(): <1> (.c 237) <1>->mutex.lock() ... (.c 342) // Here T3 sees the d_ptr load result // as <1>, which is the same as // before, thinking it unchanged and // thus continues to execute // d->lockForRead(). // T3 here has no synchronization T2, // but had synchronization with T1 at // #2. So T3 may see the stale data // previous written by T1 to <1>, i.e. // wc = 0, rc = 0 <1> <-{rc = 1} (.c 432) <1>->mutex.unlock() #4 (.c 248) <1>->mutex.lock() returns #4 d_ptr.loadRelaxed(): <1> (.c 343) // The same happens to T2 here, it continues // to execute d->lockForWrite(). // T2 here is synchronized with T3 at #4, // so T2 must see the data written by T3 // to <1>, i.e. wc = 0, rc = 1 <1>->writerCond.wait() (.c 455) After the above interleaved execution, T2 is blocked while T3 and T1 are holding the read lock, but in the QReadWriteLockPrivate object, the readerCount is 1, which is incorrect. This might further lead to deadlock if readerCount becomes -1 after the two readers release the lock or letting a writer to proceed when only one of the readers releases the lock. The fix changes the relaxed load of d_ptr in lockFor{Read,Write} after the acquire of the mutex to an acquire load, to establish synchronization with the release store of d_ptr when converting from an uncontended lock to a contended lock. Fixes: QTBUG-142321 Change-Id: I5a570471b52359dd65f309e644d9aacfd58ce943 Reviewed-by: Thiago Macieira <[email protected]>
* QEasingCurve: fix TCBPoint default constructorMarc Mutz4 days1-3/+1
| | | | | | | | | | | | | | | | | | | | | | | As pointed out by ClangSA highlighing in QtCreator, but also by Coverity, the way the TCBPoint default constructor was written meant that _t, _c, and _b were left uninitialized even if the user value-initialized a TCBPoint object: TCBPoint p = {}; // ought to zero-initialize, but doesn't Fix by removing all the constructors. Being just a POD^Waggregate is more than sufficient for this type and aggregate initialization behaves predictably: TCBPoint p; // partially-formed (_t, _b, _c are uninitialized) TCBPoint p = {}; // well-formed, value-initialized: _t, _c, _b are 0.0 Amends b9f0bde16e85161666d5090952955bebacc40f89. Coverity-Id: 11609 Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I301e5a7b68e86ddf967348b683f7a97fdc0b598d Reviewed-by: Edward Welbourne <[email protected]>
* QAccessibleColorWellItem: Fix translation contextFriedemann Kleint4 days1-1/+4
| | | | | | | | | | | QObject::tr() should be avoided. Amends eca2c9cfa7c7e22f0c5ebf036aad192f3c24d0e6. Task-number: QTBUG-141571 Pick-to: 6.11 Change-Id: If8ae1803ed6623e70622ccd34d65a12b957ed117 Reviewed-by: Volker Hilsheimer <[email protected]>
* QRMA: try to constrain the data source for insertColumn(s)Volker Hilsheimer4 days2-9/+15
| | | | | | | | | | | | | | | | | | | | | insertColumn can insert a data element, or a range of data elements, which then inserts one element from the source range for each row. insertColumns can insert a range of data elements (which is then the data inserted into each row), or a range of ranges of data elements (in which case we insert one range from the source for each row). Try to constrain this by inspecting the input data type, and allowing only compatible data elements, as well as ranges holding compatible data elements. Make the API test more specific - test with lists of integers, so that we can confirm that such input data wouldn't be allowed to add columns to a model holding pointers. Pick-to: 6.11 Change-Id: I1b67510b3f70f147530a3ae453b01328f2e639d2 Reviewed-by: Artem Dyomin <[email protected]>
* QRM: simplify detecting whether we can rotateVolker Hilsheimer4 days1-10/+8
| | | | | | | | | | Use std::is_swappable instead of rolling our own. Amends 2812579a667036eafcf238def42687ca2388e21f Pick-to: 6.11 6.10 Change-Id: I688b7b9eba702dd3e60a03d3df86392eaaec0d4f Reviewed-by: Artem Dyomin <[email protected]>
* QRMA: return just auto in mutable at() overloadsVolker Hilsheimer4 days2-17/+7
| | | | | | | | | | | | | | | | | | | | | All mutable at() overloads return a reference wrapper object, so no need for decltype(auto) return types. All const at() overloads for rows return either a reference, or a view wrapper on the row, so we use decltype(auto) consistently for those, as we want to return a const ref (and not a value) if we get one from the range. The at() overloads for getting a value return either the const data type, or a DataReference wrapper, so we can either be explicit or use auto. Remove the qdoc-only type aliases for (const)row_reference, as they are no longer used in documentation. Pick-to: 6.11 Change-Id: I319be33a9db2ca61a95eebcde34d83b35b5013b9 Reviewed-by: Artem Dyomin <[email protected]>
* QRMA: add missing documentation for the const at(QSpan) overloadVolker Hilsheimer4 days1-0/+10
| | | | | | Pick-to: 6.11 Change-Id: If53710c462661f2123e99bbf7a91a67d8a967006 Reviewed-by: Artem Dyomin <[email protected]>
* QToolTip: misc cleanupChristian Ehrlicher4 days1-8/+2
| | | | | | | | | Remove some unneeded headers and avoid two useless conversions from/to QPoint(F). Pick-to: 6.11 6.10 6.8 Change-Id: Ieae6df74e4bd2bdba9498f86ec490520408e4c20 Reviewed-by: Volker Hilsheimer <[email protected]>
* QCommonStyle: use QIcon::paint() instead QPainter::drawPixmap()Christian Ehrlicher4 days1-6/+3
| | | | | | | | | No need to fiddle around with the devicePixelRatio here - QIcon does this internally. Pick-to: 6.11 Change-Id: I8ef5e9c70e073ea7edcb678e3a072f557040e1f0 Reviewed-by: Volker Hilsheimer <[email protected]>
* androidtestrunner: do not exit(-1) when things go sidewaysDimitrios Apostolou4 days1-18/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Negative exitcodes are platform-dependent, in fact on Linux exit(-1) is received as 255 from the parent process. We avoid exitcodes [0,127] because QTest-based tests will, under normal circumstances, return values within [0,127] and androidtestrunner's job is to return that exact exitcode. We also avoid 255 itself to avoid confusion with the previous version. Finally we avoid exit codes close to 128 as some parent processes use those to signify termination by signal (e.g. Ctrl-C of a process under bash usually shows $? as 130). Therefore, we define EXIT_ERROR to be 254 instead of -1. It signifies some generic, uncategorized failure in androidtestrunner. We also define some more exit codes 251-253 for more specific things that went wrong. Finally we change relevant output from androidtestrunner to be prefixed by "[androidtestrunner] " so that important messages are not lost in the big amount of output that android builds spew. Ideally all lines would be prefixed, but that can come later with a wrapper around qDebug(), qCritical() etc. Pick-to: 6.11 6.10 6.8 Change-Id: I63edb9a429029ea7c1c9caa35fd7521832e3f9a8 Reviewed-by: Edward Welbourne <[email protected]> Reviewed-by: Mårten Nordheim <[email protected]>
* cmake: limit qtwaylandscanner not build on those platformsLiang Qi4 days1-1/+1
| | | | | | | Pick-to: 6.11 6.10 6.8 Fixes: QTBUG-141532 Change-Id: I890b06c9732d42bfa2f8ef07339f467e24234cfe Reviewed-by: Alexandru Croitor <[email protected]>
* CMake: Fix single-sdk single-arch iOS / visionOS builds of projectsAlexandru Croitor4 days1-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building an iOS / xrOS user project against a single-arch (so single SDK) Qt build, we used to force set the CMAKE_OSX_SYSROOT to the device SDK and set the Xcode attribute SUPPORTED_PLATFORMS to the simulator SDK. This worked when building the project with Xcode, but didn't work when building with xcodebuild without explicitly specifying the simulator SDK as an argument to xcodebuild. Instead of doing this force setting of the SDK / sysroot, keep the CMAKE_OSX_SYSROOT value which is decided in the Qt toolchain file (this only applies to single-SDK Qt builds). That's usually the SDK that Qt was configured with. Because xcodebuild tries to build all possible architectures for a specific SDK by default if CMAKE_OSX_ARCHITECTURES is empty, we need to ensure a single architecture is chosen (the only available one). We do this by setting CMAKE_OSX_ARCHITECTURES in the toolchain file to the only available architecture that Qt was configured with. We do this only for Xcode generator, and only for a single-arch build. This used to be done before, but regressed because we didn't store the QT_APPLE_SDK value in __qt_apple_sdk anymore. These changes ensures user projects build both with Xcode and xcodebuild without any extra args or manual adjustments. Amends 0041ddce7420aafdb8bb032058a42d47afa34c6d Amends e23ea6a5d3bf09921bb98150a4f0f504e77ef4a3 Pick-to: 6.8 6.10 6.11 Change-Id: I98bb7b6b3a86f831fa6f02bcadc4b1bbd22464ac Reviewed-by: Tor Arne Vestbø <[email protected]>
* QFuture::cancelChain(): improve propagation through unwrap()Ivan Solovev4 days2-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | QFuture::unwrap() returns a new QFuture that is not added to the continuation chain, but potentially fulfilled by both outer and nested futures. As a result, the parent-child relation in the continuation chain is broken, and a cancelChain() call will not be propagated up the chain through unwrap(). Fix it by explicitly adding the newly-created QFutureInterface into the hierarchy. This requires using some private API of QFutureInterfaceBase, so add UnwrapHandler as a friend class. There is still one more pending issue with the cancellation propagation: if at the time of cancellation the outer future is already finised and the nested is in progress, the cancellation will not be propagated into it, and so it will finish successfully. This issue should be addressed separately. Task-number: QTBUG-140786 Pick-to: 6.11 6.10 Change-Id: I62a4038f4544fff3cca65cb817940ae8b48db384 Reviewed-by: Mårten Nordheim <[email protected]>
* Android: don't enable focus for QtEditText when added to the viewAssam Boudjelthia4 days1-0/+11
| | | | | | | | | | | | | | | | | | | | This way we avoid having the QtInputConnection invoke any operations that might end up locking the the UI thread before the potential window surfaces are being created on the UI thread and end up not being able to acquire it. Pick-to: 6.11 6.10 6.8 6.5 Fixes: QTBUG-141579 Fixes: QTBUG-141782 Fixes: QTBUG-141357 Fixes: JTP-23 Fixes: JTP-4 Fixes: JTP-3 Task-number: QTBUG-139400 Task-number: QTBUG-142460 Change-Id: I152f0dc3976b28e7ba589958d3470f9c0d3dcccb Reviewed-by: Ville Voutilainen <[email protected]> Reviewed-by: Jani Korteniemi <[email protected]>
* Add QDebug operators for NSPoint/NSSize/NSRect/NSEdgeInsetsTor Arne Vestbø4 days2-0/+49
| | | | | | | | These are commonly used in platform code, and having to wrap them in calls to QRectF::fromCGRect() just to debug them is a pain. Change-Id: I28fc5ef659f5b24e22b04f8de99c2db5cdb816c3 Reviewed-by: Volker Hilsheimer <[email protected]>
* Further improve QRandomAccessAsyncFile::close() logic on macOSIvan Solovev4 days1-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 097e6ea3f6ae714658ae87e0c66274ddd09d0fae already reworked the logic to take all the possible callbacks into account. It used m_numChannelsToClose to track the number of active channels and populated this variable based on the number of active operations when close() is called. However, it did not consider one fact - once the operation is finished or cancelled, the channel related to this operation is not closed immediately. So, when close() is called, we might have some open channels from the operations that are in progress AND some open channels from the operations that are cancelled or already finished. We should wait for the close callbacks from these channels as well. This was revealed on CI by the operationsDeletedInProgress() test that was failing occasionally. This patch tries to fix it by changing the way we track the number of channels to close. Instead of populating the variable only when close() is called, we increase it each time the new channel is created, and decrease it once a channel is closed. The fix was verified with a manual test that is equivalent to the failing tst_QRandomAccessAsyncFile::operationsDeletedInProgress(). The manual test was run 100'000 times for each of the operations. Amends 097e6ea3f6ae714658ae87e0c66274ddd09d0fae and e6b26ad1eca555ee1e6b2c4e9b4c7676dc754b04. Fixes: QTBUG-142089 Pick-to: 6.11 Change-Id: I2dcaa3e2ff0e6a7cfcdbddedd1f6d9ecc44d2261 Reviewed-by: Mårten Nordheim <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* CRA review of src/corelib/platform/windowsOliver Wolff4 days7-1/+8
| | | | | | | | | | | | | | None of these files parse data or implement a protocol. While COM can be used to run "external code" none of the files in questions directly enables that so the security flags all can be "default". As a drive by: Fix minor comment Fixes: QTBUG-137067 Fixes: QTBUG-135192 Pick-to: 6.8 6.9 6.10 6.11 Change-Id: I02772a94d27a4bc5d7bd3049f2f8d4bf4b049f4a Reviewed-by: Matthias Rauter <[email protected]>
* qpainterpath.h: add missing qpoint.h includeMarc Mutz5 days1-0/+2
| | | | | | | | | | | QPP::Element::operator QPointF() uses QPointF in-size, so don't rely on transitive includes. Amends the start of the public history. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: Ib11998d62acc38f6c7dbb5b0ebe9ceb3bcf32a4f Reviewed-by: Volker Hilsheimer <[email protected]>
* Don't allocate QColorLuminancePicker::pix on the heapMichael Weghorn5 days1-9/+6
| | | | | | | | | | | | There's no reason to use a pointer for this pixmap and allocate it on the heap. Make use of the fact that a QPixmap can be a null pixmap to indicate/detect the case when no actual pixmap data are currently set. Change-Id: Ibebacfdd5ee7e8d0563197b052dde88aa8ea8c7f Reviewed-by: Richard Moe Gustavsen <[email protected]>
* QWindowsFontDatabase: Fix build issues when disabling DirectWriteKenji Mouri5 days2-0/+8
| | | | | | | Pick-to: 6.11 Change-Id: I0b2bf2983edb2f95b134f6812dab05bc633b52fc Reviewed-by: Zhao Yuhang <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]>
* a11y - Do not send ObjectDestroyed event if in cache destructorEven Oscar Andersen5 days1-4/+6
| | | | | | | | | | | We cannot use QGuiApplication::is_app_running or QGuiApplication::is_app_closing since these flags have not been set yet. Fixes: QTBUG-142552 Pick-to: 6.11 Change-Id: I612b50090c148e294ee8cf693ac0ff29921ad3c7 Reviewed-by: Jan Arve Sæther <[email protected]>
* Windows QPA: fix grabWindow position calculation with real display DPIMorteza Jamshidi5 days1-0/+20
| | | | | | | | | | | | | When dpi awareness is not set to PerMonitor, windows reports primary display or dummy DPI for all displays, so xIn and yIn and windowSize are calculated with a wrong DPI and used in BitBlt api, so we need to recalculate them using the actual screen size we get from EnumDisplaySettings api. Fixes: QTBUG-142030 Change-Id: If8ae61c6635b1e7115eb5ca0aaf6ed0caf47f82d Reviewed-by: Morten Johan Sørvig <[email protected]> Reviewed-by: Oliver Wolff <[email protected]>
* Doc: Replace a coordinate system PNG image with an SVGDavid Boddie5 days3-1/+149
| | | | | | | | | The SVG is not a direct conversion, but aims to convey a bit more information about the coordinate systems in use. Change-Id: I4465935285cd5cae7d6f0fb8760d2773ac25d6aa Reviewed-by: Alexei Cazacov <[email protected]> Reviewed-by: Jerome Pasion <[email protected]>
* Add GCC -Wnrvo to headerscleanMarc Mutz5 days2-0/+5
| | | | | | | | | | | | | As started by Allan, this patch completes the job by adding -Wnrvo to headers-clean, so the functions treated in [1] won't get un-NRVO'ed again. [1] e2d19b9b8f4f7b87a0a4bfe5b6afd1395685ba20 Fixes: QTBUG-142146 Pick-to: 6.11 Change-Id: I4a1be1e20e2e32ad2f7068681e5f1f7153d62745 Reviewed-by: Thiago Macieira <[email protected]>
* Doc: Fix incorrect \since for qTrIdKai Köhne5 days1-1/+1
| | | | | | | | | Amends 947fd416e4ee50295ecdd8a20ca63460ecf0b1f1 Pick-to: 6.11 Change-Id: I74e44058e440e24cdb110f1e02221be403d222dc Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Masoud Jami (OOO) <[email protected]>
* QRMA: add setRange overloads for initializer list and iteratorsVolker Hilsheimer5 days2-50/+127
| | | | | | | | | | | | | | Factor the setRange logic out into helper functions. For the iterator version, use a std::ranges compatible Iterator/Sentinel pair API. Also add "assign" aliases for the new overloads. No assign alias for the existing setRange overload, as that would be assign_range in STL API. Pick-to: 6.11 Change-Id: Ibbcfc1ec53c31fea2a6646e5d70486fe237fdff3 Reviewed-by: Artem Dyomin <[email protected]>
* QRMA: add move assignment operator to DataReferenceVolker Hilsheimer5 days1-18/+40
| | | | | | | | | | | | | | Don't copy the new value into the QVariant if we can move it. Also add move-construction and move-assignment SFM to the DataReference type itself; they don't save us anything right now, but it clarifies the semantics. Amends e22cd01076e795ed853b0536605d3bb205587d78. Pick-to: 6.11 Change-Id: I6cdba7a03f5e6e59bb9e2f5e44483fea7b1ed1cc Reviewed-by: Artem Dyomin <[email protected]>
* CMake: Un-TP the QT_ANDROID_DEPLOYMENT_TYPE variableJoerg Bornemann6 days1-1/+0
| | | | | | | | As discussed in the API review for Qt 6.7. Task-number: QTBUG-121706 Change-Id: Ib5f1bfe3e549ce8d2923a89f735958cc6e207a2f Reviewed-by: Assam Boudjelthia <[email protected]>