summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix backing store compositor transform with VulkanLaszlo Agocs2023-09-071-3/+4
| | | | | | | | | | | | | The problem does not become apparent until a QQuickWidget or QRhiWidget using Vulkan is put into a QScrollArea and then attempted to be scrolled vertically. Fixes: QTBUG-116338 Change-Id: I55367b51aaf2bb8d039bf5e313a0d8c3d7908327 Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 750d00aba7e49b6093bc273924ba688cb433b505) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QNetworkReply: fix potential nullptr access in loadFromCacheIfAllowed()Vladimir Belyavsky2023-09-061-1/+2
| | | | | | | | | | | | | | | | Fix a potential nullptr access in QNetworkReplyHttpImplPrivate::loadFromCacheIfAllowed() on accessing to QAbstractNetworkCache::data(). It is not yet clear in what cases cached data can be null, especially if metaData is present, but we have user reports of such crashes. Amends a6776de0c70d23ac197682c7bef603450cb8b03f Fixes: QTBUG-116788 Change-Id: I548065c6f809d9d45db6dd785c28acbdc77621e2 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 74fb2519e32760dbe9f10a9ffd2b460d827062a5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add support for setting the initial directory in portal file dialogDavid Redondo2023-09-061-13/+12
| | | | | | | Change-Id: I2bceddb470e7870f19fc616e3dbae73cc057cb66 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 42fd8a8e8a758e7e4ddaae9943402b2e3bae25fe) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QAbstractAnimation::setCurrentTime() - fix bindable property usageIvan Solovev2023-09-061-14/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The setter is complicated, because it reads the values of four properties (loopCount, totalCurrentTime, currentLoop, and direction) and modifies the values of two properties (totalCurrentTime and currentLoop). For the read-only properties, inroduce local variables, so that the binding evaluation is done only once, and re-use the local variables afterwards. For the read-write properties, use {set}ValueBypassingBindings() methods, because we are anyway explicitly calling notify() afterwards. Intorduce a newCurrentLoop local variable to calculate the new value of currentLoop, and update the actual property only once. Use the newCurrentLoop and msecs variables instead of accessing the actual properties when determining if we need to notify about property changes. The other complexity is that the setter calls a virtual updateCurrentTime() method in the middle of the calculation. Subclasses can override the default implementation and modify the properties there (at least QSequentialAnimationGroup updates totalCurrentTime property under certain conditions). Keep it in mind and re-read the property values after the call to the virtual method. As a drive-by, make some pre-existing variables const. Task-number: QTBUG-116346 Change-Id: I0a48bcabde15333e80ea2d54e308cb9438b310e7 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit bfc2d69c613d9431f00ac303aed3076e0d1d4dae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QHostInfo: use python3Thiago Macieira2023-09-061-1/+1
| | | | | | | | | | Because Python 2 reached end of life. I wonder how this even works on macOS, as my Monterey doesn't even have "python" any more. Change-Id: Ibddb9b0ada5a4bbaa64bfffd173b239c6c4b66f3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit a7c3b747dbe4609b015de9c6e6fc9cdce8f386a0) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* wasm: expose windows before delivering updatesMorten Sørvig2023-09-061-4/+9
| | | | | | | | | | | | | | | | | | | | | | | Don't show a blank frame on app startup. The wasm update request system supports two types of update requests: Expose and UpdateRequest. It can happen that both types of request are made for a single window, in which case the current code prefers UpdateRequest, since those must be delivered in order to keep QWindow in a consistent state. However, if the window is visible but not yet exposed then delivering the update request will not make the window paint anything, and we end up with a blank frame. Ideally this should be handled elsewhere and QWindow::requestUpdate() should not be called for non-exposed windows, but in the case does happen then sending an expose here allows us to recover. Change-Id: Ib53050c33ad1769ea9b9ad678896af15f87a7ecb (cherry picked from commit 4c18ebbc1c0bddca4b19a585d2d3a5dafdefc4a3) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* tst_QDnsLookup: extend test coverage for property bindingsIvan Solovev2023-09-062-0/+28
| | | | | | | | | | | | | | | The pre-existing tests were not using the QTestPrivate helpers, so extend them with the call to QTestPrivate::testReadWritePropertyBasics. The updated test didn't reveal any problems with binding loops, so no other action is required for now. Task-number: QTBUG-116346 Change-Id: I51a17974a7f5bec3c969fcb55b6f28e3e9218eb5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 96a62cd1f5e5c5a915d60ba6d86a5ea44fc32acc) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* rhi: Make it safe to always call deleteLater on a resourceLaszlo Agocs2023-09-067-39/+158
| | | | | | | | | | | | | | | | | | | | ...even when the QRhi is already gone. This should not happen in well-written applications and libraries, but we handle this gracefully in the regular dtor and destroy() for resources that register themselves to their creator QRhi, so by registering everything we can offer this to all QRhiResource subclasses. We still want to differentiate between native resource owning QRhiResources and others (that do not create native graphics objects), so do this via a flag passed to registerResource(). This way the behavior with QT_RHI_LEAK_CHECK=1 does not change. Fixes: QTBUG-112914 Change-Id: I9bafc81ef7a4ae76f356fc5f6248628d1f8791e0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 62a4ca773a9e8a2f0c993c159c045f2794078aad) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Dialogs: clean up native dialogs when object gets destroyedVolker Hilsheimer2023-09-0610-40/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | QWidget::setVisible is virtual, and called via hide() by both the QDialog and the QWidget destructor. A dialog that becomes invisible when getting destroyed will at most execute the QDialog override. Subclassing QDialog and overriding setVisible() to update the state of the native platform dialog will not work, unless we explicitly call hide() in the respective subclass's destructor. Since e0bb9e81ab1a9d71f2893844ea82, QDialogPrivate::setVisible is also virtual, and gets called by QDialog::setVisible. So the clean solution is to move the implementation of the native dialog status update into an override of QDialogPrivate::setVisible. Add test that verifies that the transient parent of the dialog becomes inactive when the (native) dialog shows (and skip if that fails), and then becomes active again when the (native) dialog is closed through the destructor of the Q*Dialog class. The test of QFileDialog has to be skipped on Android for the same reason as the widgetlessNativeDialog. Fixes: QTBUG-116277 Change-Id: Ie3f93980d8653b8d933bf70aac3ef90de606f0ef Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 505ed52cd4dcef081d9868424057451bd1dce497) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QFontComboBox: inform accessibility about model reset when filter changesVolker Hilsheimer2023-09-061-0/+8
| | | | | | | | | | | | Signals are blocked explicitly, so the modelReset signal that would normally make the view update the accessibility framework does not work. Update accessibility explicitly. Fixes: QTBUG-114423 Change-Id: Iba6f0b9dfb258e85111326184d7899bf0570a5c1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit a0b7eee6c6af8d233e3bb7bd5c39f9059ec994f0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: remove erroneous statement that signals can't have return typesThiago Macieira2023-09-061-2/+1
| | | | | | | | | | They can (it's just very, very unusual). Fixes: QTBUG-116695 Change-Id: I2b24e1d3cad44897906efffd178178f1542e67f2 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 40e9e42bc6ea81bd22c187ba6d08954ab3e0a245) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QCborValue: add benchmark for operator[]Ivan Solovev2023-09-064-0/+87
| | | | | | | | | | In order to test the impact of migration to QASV. Task-number: QTBUG-101707 Change-Id: I17f84ca98fc87d89bb4cd6ad98c8a12aecd315ee Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 516d828f240c3166a057372dde6cbec4ea6d380a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Clean up inline keyword use in qstring.hMarc Mutz2023-09-061-112/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an inline member function is defined outside of its class' body, its declaration must have the inline keyword. Otherwise, in certain situations, MinGW complains like this: qstring.h:1118:13: error: 'void QString::clear()' redeclared without dllimport attribute after being referenced with dll linkage [-Werror] Fix all instances in qstring.h by - adding the inline keyword where it was missing on the definition (except constexpr functions, which are implicitly inline) - removing the inline keyword from all out-of-class-body definitions While the latter isn't necessary for fixing the MinGW warning-turned-error, the churn is warranted: It's enlisting all platforms' help in checking for inline consistency (by causing "multiple-definition errors" at link time or "inline function never defined" at compile time when we get it wrong). If we kept the inline keyword on the definitions, only MinGW would continue to warn, and only in some, as of yet not fully understood, situations, so we'd have no control over when these warnings pop up in user code. Change-Id: I0ae78f1d8f1fa4eaec0b162ea16013669370eead Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Dennis Oberst <dennis.oberst@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 1c1d7ab486b87489163c56b05d10ff907e1d821d) Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* CMake: Don't add no-prefix define to qconfig_p.hAlexandru Croitor2023-09-061-1/+1
| | | | | | | | | | | | | | It's unlikely that C++ code needs to query that feature. It also causes full rebuilds of Qt if the feature's value is toggled. Remove the no-prefix define from qconfig_p.h. Task-number: QTBUG-116689 Change-Id: I7d968b1c3d6bff3653e1233cea09a36579776347 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit afe158b93686a82e5f1586b1785a2fdd7e8bb765) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QSortFilterProxyModel: fix binding loopsIvan Solovev2023-09-061-7/+8
| | | | | | | | | | | ... by using valueBypassingBindings() when accessing the properties from the setters. Task-number: QTBUG-116346 Change-Id: Ibbad552fa1e611f4bb704b4e47667df5f328f152 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 2ef65f895be6cf7b448e739301a19a3c82458f7b) Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Core serialization examples: spacing-only clang-format changesEdward Welbourne2023-09-066-24/+24
| | | | | | | | | Marc disagreed with clang-format on some, which are thus excluded. Task-number: QTBUG-111228 Change-Id: I1402274635dba866a8160a68211874cb11dcfa61 Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit 670f66eed3fd81f4b7c3e6f43d06e5bb79176527)
* QTimer: extend property tests and fix binding loopIvan Solovev2023-09-064-2/+43
| | | | | | | | | | | | | | | The bindable property tests were not using the QTestPrivate helpers, so add a new test which uses them. The new tests revealed a binding loop for the interval property. Fix it in a usual way by explicitly removing the binding and using {set}ValueBypassingBindings() in the setter. Task-number: QTBUG-116346 Change-Id: If94f57938da449a68e3527aead5ebd55ba410adb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit 7d70edd31cb4c55471ad96e3a1d7114e2c081cf6)
* Minor tidies in example's XML converterEdward Welbourne2023-09-061-2/+2
| | | | | | | | | | | Make a local variable more local, set a variable only once its new value is known to be valid. Task-number: QTBUG-111228 Change-Id: Ib6aa16e8c834f89c6ccc0715f20b0e5f0a7f3b6d Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io> (cherry picked from commit 40b07ee887d9717088e3189b15c86a5c87759b1d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Exploit C++17 init-statements in if to simplify a loopEdward Welbourne2023-09-061-12/+5
| | | | | | | | | | | | The serialization converter example's text converter's loadFile() can be made tidier by making the conditions within its loop into a chain. Task-number: QTBUG-111228 Change-Id: Ic82355eab7380a0c671b3805ca140958bb1c5af5 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io> (cherry picked from commit d631f888042e3f3f5d4d0284c6bad8eb91e2c9a3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update datastream converter to use Qt_6_0 instead of Qt_5_0Edward Welbourne2023-09-061-2/+2
| | | | | | | | | | It was added in 5.12 and we've had a few upates since then. Task-number: QTBUG-111228 Change-Id: Iacb5368d4baa7d25f981bb0b8bd8d68b5461e17d Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 833ed75b650bb870a158fa8f6e50f06e64fb90a6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Mark linux_perf_event with GPL-2.0-onlyKai Köhne2023-09-062-2/+2
| | | | | | | | | | | "GPL-2.0" as a SPDX identifier is deprecated in SPDX 3. Use the more explicit GPL-2.0-only instead. Change-Id: Ie543135ad1d73205f7a94db140189f5132098ea2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 8550d60acaead1f5a148f8e8e8384798dc6cd071) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Mark freetype as GPL-2.0-onlyKai Köhne2023-09-062-2/+2
| | | | | | | | | | | GPL-2.0 SPDX identifier is deprecated. Use the more explicit GPL-2.0-only instead. Also, in SPDX expressions AND and OR need to be all uppercase. Change-Id: I0875cf3b9b2020f69e3318d5ff314988a3992409 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 0b3b1ab26c126701c8ac317d94d80858f0bb2ec7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTimer: fix regression on singleShot-invoking non-mormalized SLOT()sThiago Macieira2023-09-062-1/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The was introduced with the rewrite of QMetaObject::invokeMethod() in commit 0f76e55bc440a70f5d9530a192c9ce6334a8f06, because we have an optimization for zero timers to avoid creating a temporary QSingleShotTimer object. The old implementation did attempt to normalize the target slot name, but did so because it looked metamethods up using QMetaObject::indexOfMethod: int idx = meta->indexOfMethod(sig.constData()); if (idx < 0) { QByteArray norm = QMetaObject::normalizedSignature(sig.constData()); idx = meta->indexOfMethod(norm.constData()); } The new implementation does not use this method so it didn't need to attempt to normalize. I am fixing this only in QTimer and not in QMetaObject::invokeMethodImpl (even though it is trivial to do so) because I don't believe spaces in a pure string to invokeMethod were ever expected to work: QMetaObject::invokeMethod(obj, "slotName ", Qt::QueuedConnection); The Q_ARG and Q_RETURN_ARG (for code not recompiled) still does normalization inside QMetaType::fromName(). Resolve conflicts and adapt to lack of std::chrono support in Qt 6.5. Fixes: QTBUG-116060 Change-Id: I964c2b1e6b834feb9710fffd177cac60c83ef413 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 4368179c37cae05d16109e319fc1c77490754c7d)
* tst_QMovie: extend the test coverage for property bindingsIvan Solovev2023-09-062-0/+21
| | | | | | | | | | | The old tests were not using the test methods from QTestPrivate, so add another test case. Task-number: QTBUG-116346 Change-Id: I291ede26461e79a615630f1decad2ad7549b4dd8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit cdb50edc9862679e8795a8404ce49fb26534f4bc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLocal{Socket,Server}: extend the test coverage for property bindingsIvan Solovev2023-09-062-7/+14
| | | | | | | | | | | | | | | | | | The pre-existing test for QLocalServer was testing only a minor subset of cases, so replace it with the call to QTestPrivate::testReadWritePropertyBasics. The test for QLocalSocket's bindable properties was missing, so add it. The new tests didn't reveal any problems. Task-number: QTBUG-116346 Change-Id: I695bb050d39eeae9ffb84c097c36601a4ca89af6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 1ad424aed502386c97359b65f37edf2966c0dfa6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QStandardItemModel: extend the test coverage for property bindingsIvan Solovev2023-09-062-0/+5
| | | | | | | | | | | | | | The pre-existing tests were not using the QTestPrivate helpers, so extend them with the call to QTestPrivate::testReadWritePropertyBasics. The updated test didn't reveal any problems with binding loops, so no other action is required for now. Task-number: QTBUG-116346 Change-Id: I360614a40fe2bacb796051607ed67e7e666b4f22 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit ac59fcdab8adb80648fee15956428630946dd01d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QVariantAnimation: fix binding loopsIvan Solovev2023-09-061-8/+8
| | | | | | | | | | | | | | | | Rewrite the logic of the setters to use removeBindingUnlessInWrapper() and {set}ValueBypassingBindings() calls. The logic of both setters didn't change, because previously the pre-existing bindings were implicitly removed when calling the assignment operator. The new code just makes it explicit. Task-number: QTBUG-116346 Change-Id: I475e6cd65fc73796176f257835cb67b9e70a1e34 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit df9651c3fcdd026255add31744b2f75dc2ecdd62) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAbstractProxyModel: fix binding loopsIvan Solovev2023-09-062-8/+9
| | | | | | | | | | | | | | | | | ... by using valueBypassingBindings() when accessing the properties from the setters. This commit is mostly trivial. Had to change the template parameters in the unit-test, because the updated QTestPrivate::testReadWritePropertyBasics() creates an instance of the TestedClass, and QAbstractProxyModel cannot be instantiated, since it has pure virtual methods. Task-number: QTBUG-116346 Change-Id: I0cae29263ea9bb92c9de06891b0ba8633fb9fd72 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 6a873778b976b4752e874a2d87ea84e5d9e0d3c5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QTimeLine: fix binding loopsIvan Solovev2023-09-061-20/+22
| | | | | | | | | | | | | | | | | | | | ... by using valueBypassingBindings() when accessing the properties from the setters. The most complicated case here is the currentTime property, because its setter was calling the public currentValue() and currentFrame() methods. Both methods are reading the same currentTime property. Fix it by replacing the calls to these methods with the calls to valueForTime() and frameForTime(). Both take an int parameter, so the updated code can use valueBypassingBindings() to pass the current time to these calls. Task-number: QTBUG-116346 Change-Id: I5c3a05f3e21e4c9e53ed98c9f8d1dce76e40a00d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 47d2788e0b99870cbd21044ac1e42d0c2cabb1f0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QDBusServiceWatcher: fix binding loopsIvan Solovev2023-09-061-35/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | This class has two bindable properties - watchedServices and watchMode. What makes this class non-trivial is the fact that these properties depend on each other - setWatchedServices() need an up-to-date watchMode to set up the services, and setWatchMode() needs an up-to-date list of services in order to update the mode on them. Update the setters in such way that they remove the bindings from the updated property, and at the same time trigger the re-evaluation of the property they depend on. This includes refactoring of the helper setConnection() method in such way that it does not cause property re-evaluation, and also update of the {add,remove}Service() helper functions to take the watchMode as an input parameter. The public {add,remove}WatchedService() methods were updated similarly. The logic of the removeWatchedService() method was additionally updated to do some changes to the properties only if the service-to-be-removed actually existed in the list. Task-number: QTBUG-116346 Change-Id: If46cf926c7ace9dc4893d8daaef088f61e41c21a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit d85663ced8762b3096dbcbcfbc3894895a6e11c7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPauseAnimation: extend tests and fix binding loopIvan Solovev2023-09-063-4/+11
| | | | | | | | | | | | | | | | Extend the unit-tests for bindable properties and fix the discovered binding loop by using {set}ValueBypassingBindings() in the setter of the duration property. The code refactoring does not modify the setter logic, because previously the binding was anyway implicitly removed when calling the assignment operator. The updated code just does it explicitly. Task-number: QTBUG-116346 Change-Id: I0f339d182efb60500ee7f12e407f200d739da312 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b64e36240b807e6dba783732593036439fec8a62) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QSequentialAnimationGroup: extend bindable property unit testsIvan Solovev2023-09-062-0/+13
| | | | | | | | | | | The bindable property tests should use the helper functions from QTestPrivate. Task-number: QTBUG-116346 Change-Id: Ie1a61ab80e6f737eac02246214c2c93129a1cf94 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 22c2c15b27a65e988be2c7e21f3e97c4ced97375) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPropertyAnimation: fix binding loopsIvan Solovev2023-09-061-11/+13
| | | | | | | | | | | ... by using valueBypassingBindings() when accessing the properties from the setters. Task-number: QTBUG-116346 Change-Id: I04abc394f4406dc0fa75c55a9093e10c27a20c30 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b6b94111c77df60c425617d0d76a6574906294c0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add example categories to Qt Widget examplesMats Honkamaa2023-09-0668-8/+79
| | | | | | | | | | Added example categories and fixed some minor typos as well. Task-number: QTBUG-116359 Change-Id: I2e270a1919003f4cea233666b64437e4c2b77121 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 7ef93cbf6883af053b1bdf042975b11a39f0312b) Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Update bundled zlib to version 1.3Dennis Oberst2023-09-0627-1543/+1006
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zlib 1.3 has been available since August 18, 2023. Version 1.3 now defines the following: # define crc32_combine_gen z_crc32_combine_gen # define crc32_combine_gen64 z_crc32_combine_gen64 # define crc32_combine_op z_crc32_combine_op We patched those in manually with qtpatches.diff, so we update it to reflect these changes. Updated the diff with 'git diff --relative > qtpatches.diff' from within the 3rdparty/zlib directory. Since updating zlib always requires some manual intervention add a minimal guide that will be printed on using import_from_zlib_tarball.sh. As a drive-by fix an error in import_from_zlib_tarball.sh where passing in a path already containing a backslash as: import_from_zlib_tarball.sh zlib-1.x/ ./ would append another backshlash to that path (zlib-1.x//). Furthermore add the '-v' flag to the copy command to make it more verbose. [ChangeLog][Third-Party Code] zlib was updated to version 1.3. Task-number: QTBUG-116236 Change-Id: Ib7c8698035e1e049b455308c5774fcaf88b7622a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit 3652cdf6c78d22126c4f2ec363f338169330c849) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add example categories for qtopenglJaishree Vyas2023-09-066-1/+6
| | | | | | | | Task-number: QTBUG-116069 Change-Id: If675124e538c197d3b446f09da0620718b7b7118 Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit ce47799de69812681b6be0b9d3d6d5c5e980bafb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAccessibleWidget: Remove pointless ZWSP in warning messageFabian Kosmale2023-09-061-1/+1
| | | | | | | | | | | | There doesn't seem to be reason for it to exist, and apparently it causes compilation failures with icc. Fixes: QTBUG-116517 Initial-patch-by: Yorick Bosman Change-Id: Ic2ed1d4318d522851278afa7f9791441af4fa709 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit ca4633f243a23de1848ebf32aef45f23d6d18154) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QSslSocket: don't use deprecated RSA apiTimur Pocheptsov2023-09-061-0/+2
| | | | | | | | | | OpenSSL 3.1.2 can be configured with no-deprecated option, in this case test fails to build. Change-Id: Icaf457f55fb001b632922856dbe4bbb5bdba220e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit a323f05c5e3b4b2268b3a00eac79af1bdfaa03bb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_gestures: clean-up the BLACKLISTTimur Pocheptsov2023-09-061-55/+0
| | | | | | | | | | | | | The recent change in QCocoaScreen (108d2e44867acfa98c3b0c211d9b48f39d10efa9) fixed the problem with no widget found at 'hot spot' (while we know it's there, since we create it and wait for it to get expose event). Fixes: QTBUG-108402 Task-number: QTBUG-115945 Change-Id: Ibbf6867bb3381b8137d64cdbd15cc467d8fcf348 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 708b3285f395944062ef32f2c4f0190b470854db) Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QCOMPARE: restore compatibility with braced-init-listsGiuseppe D'Angelo2023-09-068-38/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a611a9f537f1187825339c2a2214c8ec4a23680f (in Qt 5) added support for mixed-type comparisons through QCOMPARE. That commit added a new overload for qCompare taking two types, T1 and T2; but it also left the same-type qCompare(T, T) overload around, guarded by a Qt 6 version check. The mixed-type version is however not a generalization of the same-type one, because it won't work if one of the arguments doesn't participate in FTAD. Case in point: braced-init-lists. In Qt 5 this worked: QCOMPARE(some_container, {42}); but in Qt 6 it does not work any more. The mixed-type overload fails deduction (can't deduce T2); in Qt 5 the same-type overload deduced T=SomeContainer, and {42} was used to select a constructor for SomeContainer. -- There's a partial, straightforward workaround for this: default T2 to T1 in the mized-type overload. In that case T2 has a "fallback" if it cannot be deduced. This is partial because of course doesn't address the case in which T1 cannot be deduced, but I don't think that is common at all. QList is special here, because it has qCompare overloads that makes it comparable with arrays, initializer lists and more. I don't like that very much -- we should probably have a qCompare(input_range, input_range) overload, but that's an exercise for C++20. Change-Id: I344ba33167829984978cd8d649a1904349a9edab Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 5560723e9dd8f32a2fb2530b975ba0bb0f9f5ef7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QBindable: Add doc example for ctor taking property nameFabian Kosmale2023-09-061-1/+8
| | | | | | | Change-Id: I36de517291ef940d6fa284e062d44a5b619c0018 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b7184e110434cdae127d03a1467ba6fb02607768) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAbstractProxyModel: delay headerDataChanged emissions when ↵Giuseppe D'Angelo2023-09-062-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inserting/removing rows/columns 33c88f86b5b8714977719a8ccff0f7c15c9cbd44 added some logic to QAPM in order to have it automatically emit headerDataChanged when rows/columns were added or removed in the model. This was done as a stopgap measure to prevent QAPM from asking for illegal indices in order to implement automatic remapping of the section headings (since there's no mapSectionToSource). The commit seems to have introduced a regression in QHeaderView, which isn't prepared to receive headerDataChanged while a row/column count change is in progress. When receiving headerDataChanged, QHeaderView will try to read the row/column count and will store it internally. When it will then receive the signals for insertion/removal of rows/columns, it will interpret it as a modification of the previously stored value -- even if the value it stored was already correct. Fix this by avoiding to have two signals in flight at the same time; emit headerDataChanged as a queued invocation. Task-number: QTBUG-114225 Change-Id: I521465a852b8c7135f22f730ead41dca760ba428 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit a0bcad39033bddd9b9d14a524b829513105913d3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QProcess: move setChildProcessModifier test to a Q_OS_UNIX sectionThiago Macieira2023-09-061-39/+38
| | | | | | | | | | | There's no need to say it's getting skipped on Windows. moc *can* parse the #ifdefs these days. Change-Id: Icfe44ecf285a480fafe4fffd174d95c709ff6a74 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> (cherry picked from commit df2131426ecc9711b5ac67a45fde7d760c8f2df2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* widget: set WA_X11NetWmWindowType* after xcb window was createdLiang Qi2023-09-051-1/+1
| | | | | | | | | | | | This amends 17d68c4fc371c32bd58d0a94ac63f0170edaf29e. Fixes: QTBUG-116696 Task-number: QTBUG-39887 Change-Id: Idf385bcbeb630ddfc51b39b2af35da3ab94b07c0 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 29b076d6143f8a4aede72c176efcc40e5b7d701e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QPrintDialog on macOS: Don't crash when parent is not a windowVolker Hilsheimer2023-09-052-2/+19
| | | | | | | | | | | | The test case is an incomplete version of the test that will be added to verify the fix for the referenced bug report. The test crashes already when showing the dialog without this fix. Task-number: QTBUG-116277 Change-Id: I969a723157f6453b78bafae5cb24a6b37b1eea50 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit e73f35d9c63378ed26e33f488a3ee5bb0745e9d5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Delete links to removed examplesAndreas Eliasson2023-09-057-9/+7
| | | | | | | | | | | The examples have been removed as part of the examples revamp project. This patch resolves a number of qdoc warnings. Change-Id: Ie3d2f5637136c631d7e9f7a8ffd93baea52f77d8 Reviewed-by: Kai Köhne <kai.koehne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 132be307fff049e83ba8b93733fc571c0c45469b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix typo in QCocoaWindow commentColin Snover2023-09-051-1/+1
| | | | | | | | Change-Id: Idea292bc2927ff9a534f06b054c26b4ab3ef1bea Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 03bbad68ce45a8c7c199364157b91addfba8fb2e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QComboBox: scroll the popup to the top before positioning itRichard Moe Gustavsen2023-09-052-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the style changes while a popup is open (or about to close), the popup will change style as well before it's hidden. And this can result in the popup window briefly ending up smaller than what it needs to be, in order to fit all the menu items. In that case, it will show 'up' and 'down' widgets in the menu that auto scrolls it when hovered. And all this can happen for a split second while the menu is about to close (as a result of the user clicking on a menu item). A bug happens because of this if you click on the last menu item in the list, and this causes the style to change. In that case, the 'down' widget will end up directly underneath the mouse for a split second, which will trigger an auto-scroll timer to start. This timer will trigger a bit later, after the popup has been hidden, and scroll the list view a bit down. The result is that the next time you open the popup, it ends up at the wrong place on the screen in a failed attempt to center the current index on top of the combobox. This patch will make sure that we always scroll the list view to the top before we start calculating where the popup should be placed on the screen. Otherwise the geometry ends up wrong since the popup will anyway be resized (if possible) to fit all the menu items before it's shown and should therefore not take scrolling into account. Fixes: QTBUG-113765 Change-Id: I61b5b832904de471c2303fc67325feec322b1449 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit 8393922e7071221a9c6c0811eb714f20bf4ed02b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* wasm: add iOS to platform detectionLorn Potter2023-09-053-5/+6
| | | | | | | | | | Add iPad and move iPhone platform to iOS Fixes: QTBUG-114446 Change-Id: I3f601fbe5f3899c0658ee65acf72bbf37d51bf73 Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io> (cherry picked from commit 65f09d4e10e435846b6669945e37f807de127199) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix version script testAlexey Rochev2023-09-051-20/+18
| | | | | | | | | | | | | | | 1. Don't reassign different versions to same symbol 2. Define symbols used This fixes warnings with LLD linker (or errors if -Wl,--fatal-warnings is added by toolchain e.g. with Android NDK) 3. Add -Wl,--version-script to CMAKE_REQUIRED_LINK_OPTIONS instead of CMAKE_REQUIRED_FLAGS to prevent unused argument warning in compilation phase (there is no need for _SAVE variable because we are inside a function and our CMAKE_REQUIRED_LINK_OPTIONS won't escase its scope) 4. Fix removal of version script file (incorrect file name was used) Task-number: QTBUG-111514 Change-Id: I0a1548c4268ad511760a0d4aa69ba7a0bdcbb0bc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit d68dbd8b7d018f0a4f0eddf558b5524f608f949a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>