aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Make QML test files available to Creator's locatorMitch Curtis2022-03-097-0/+76
| | | | | | | Change-Id: I87acd2ff973b3acce6d575bf6b2e04b8e50f0597 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 8751b64383ebf6da96a16a73cb6886067036442f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QML: Unify treatment of invalid revisions on registrationUlf Hermann2022-03-092-0/+65
| | | | | | | | | | | | | Revisions before QML_ADDED_IN_VERSION and revisions after QML_REMOVED_IN_VERSION should both result in anonymous types. This way, you can then derive from the type in question and expose the derived type in a different set of versions. Change-Id: Ia59258047fc242c809c27525bb75fd2797fe5aab Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 464abaec05e0aa0ab699243412c50a5d5ac30742) Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* QQuickScrollBar: ensure '0 ≤ size ≤ 1' and '0 ≤ minimumSize ≤ 1'Oliver Eftevaag2022-03-071-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't make sense for these properties to be negative or larger than 1.0. The size property is meant to be the size of the scrollbar relative to the scroll area size, either horizontally or vertically, and should be in the value range 0 ≤ x ≤ 1, where 1 means that it covers the whole scrollbar area, and 0, meaning it's invisible. This property can be set from qml, or by QQuickFlickable with a scrollbar assigned to the Scrollbar.vertical or Scrollbar.horizontal properties. The minimumSize property can be set by the qml user, to force the scrollbar to be larger than the Flickable size / contentSize ratio. It makes sense to force the 0 ≤ x ≤ 1 constraint for this property's value as well. amends ef69623648f6f5ef5ab10dd9dee72f044334d53d As an additional sanity check, I've added a qt_is_finite() check for all qreal properties as well, just to prevent our API users from accidentally setting a property to an invalid floating point value. Change-Id: I9f2880333483bf584986801d6b7204fea8d66e58 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 0e4444a74a4259ec0871ec95d3804a0bbaf3b30f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove pointer manual test from the buildShawn Rutledge2022-03-051-1/+0
| | | | | | | | | | | | | | Followup to 8503f884bbdb50c4bebc8f8a9fce05275b0612b1: much of the qml was moved to an example, and the leftovers in this directory no longer include the main.cpp/main.qml/CMakeLists.txt for building a standalone executable. It's generally enough to run them individually with the qml runtime, on desktop platforms at least. Task-number: QTBUG-101451 Change-Id: I4b329d0fabb398308c411246f34789d66e7eda33 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 754e971d1d2a15ebd89430b1572912566417625b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename android_dummy_imports.qml to dummy_imports.qmlAssam Boudjelthia2022-03-0524-39/+39
| | | | | | | | | | | | | | | | | Amends 16f0d38d568b3af135f5db862f5868a6bc669c42. From 0fc8a511baa6493c8d80046dd99b8eba3634d2a2, it seems that not only Android is relying on these imports to satify qmlimportscanner, but also Integrity. So rename the imports to something generic and remove the explicit mention for Android. Task-number: QTBUG-97056 Change-Id: I9273fd0f9201a805cad4d588847796f7daecb686 Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 841217b9883a24919ab375a90a7fef41cc82b44c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Reduce the length of Int8Array in tst_QJSEngine::typedArraySet()Assam Boudjelthia2022-03-051-1/+1
| | | | | | | | | | | | On 32-bit Android x86 using a length of 0xffffffe throws an "RangeError: ArrayBuffer: out of memory" instead of the expected "RangeError: TypedArray.set: out of range". Task-number: QTBUG-99193 Change-Id: Id6deea18fe90228db616ddc7550c7832825c297a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit c67e7922f2b21453b37e7e2397863c449a5e415b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QML: Handle dynamic meta objects in AOT lookupsUlf Hermann2022-03-044-0/+148
| | | | | | | | | | | | If we are dealing with dynamic metaobjects, the QML engine may not create property caches. We cannot see this at compile time. Therefore, we need to establish a fallback infrastructure that does the same operations on plain QMetaObject. Fixes: QTBUG-101349 Change-Id: I8c936fc077b0018df71196620b6987825253cb39 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 1e722f5e8e6510f3a1bc10436f8262c918ca9599)
* INTEGRITY: Fix some test cases from core/qml foldersKimmo Ollila2022-03-0321-3/+87
| | | | | | | | | | | | | | -Add dummy_imports.qml to TESTDATA -Let qmlimportscanner handle plugin import -Skip cases that depend on mounted filesystem Task-number: QTBUG-99123 Change-Id: I99e21e423f2114c4c4ee1e24bdf9bb85af51baf7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit 0fc8a511baa6493c8d80046dd99b8eba3634d2a2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Correctly label return types of JS functionsUlf Hermann2022-03-034-1/+32
| | | | | | | | | | Returning void from any JS function doesn't quite cut it. Fixes: QTBUG-101285 Change-Id: I199813627614061ec25139277e8ea23cb844aac5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> (cherry picked from commit 23ab2e0f5552bb54fef5a6c57f5f82f430d0956c)
* QQuickAnchorChanges: Keep geometry bindings on reverse() and rewind()Ulf Hermann2022-03-032-0/+55
| | | | | | | | | | | | This is in line with what we do in other reverse() and rewind() methods. Unfortunately we need to dig deep into the QQuickItem internals in order to get all the flags and callbacks right. Fixes: QTBUG-101186 Change-Id: Icde1a1b2dab1b9cab5adcbc28485a7526a8ac2b7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 247efb9a343a14bb12805e56e4950919071d9395) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmltyperegistrar: Tolerate and warn about invalid URIsUlf Hermann2022-03-021-0/+10
| | | | | | | | | | | | | If you give qmltyperegistrar an invalid URI it should still not generate invalid C++ code. In fact the module will still be somewhat usable. You just cannot import it. Task-number: QTBUG-101072 Change-Id: I21232f99c1ef486a62dbe339f7d0ae1b9abc8871 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 88e96debfdad3961db3225de7b4c7f90afe7698e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QML: Explicitly reject malformed file importsUlf Hermann2022-03-024-0/+44
| | | | | | | | | | | You cannot just pass a resource path or absolute path. We expect a URL after all. A relative path is a relative URL, so you can pass that. Fixes: QTBUG-98181 Change-Id: I010bc08b8cb0ff06712f7b0353955bee96ae36c1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 1240a440f29762850a9206bdf9961cebe015c1fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disable failing declarative tests on Android - Part 2Assam Boudjelthia2022-03-025-2/+27
| | | | | | | | | | | | | | | | | This allows us to enable testing on declarative for the module as a whole and have some sort of test verification for the mean time, and fix the fails over time. This also disable tests like qdom and qjsscope which are host tests. Task-number: QTBUG-100991 Task-number: QTBUG-99194 Task-number: QTBUG-101005 Task-number: QTBUG-101006 Change-Id: Ie7ae5b8e0ccdf2f55ce3568091d513a073c48417 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 6c3373109fedf45b06c9c48355a80922fd754b31) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* A11Y: make QQuickText focusable for A11YIvan Solovev2022-03-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | A QtQuick Text element is used to represent a separate block of text in a window. Normally, when TalkBack is enabled, the user expects to be able to navigate between separate blocks of text with regular A11Y gestures. However before this patch the Text elements were not focusable by default, so all the Text elements in the Window were read by the TalkBack successively, as if it was one element. This could be solved by explicitly adding Accessible.focusable: true to the properties of every Text element. This patch enables A11Y focus on Text elements by default. Fixes: QTBUG-77371 Change-Id: Icfcef6ee301b9218bb9ace97a05432c9fc2ffb0a Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 9c5f772b5eb008cd0d00a0801b80a399fdc0e3c9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix tst_qquickaccessible::hitTest() on AndroidIvan Solovev2022-03-021-1/+2
| | | | | | | | | | | | The issue was that on Android the main windows always takes the whole display size, so the width and height properties are ignored. Task-number: QTBUG-77371 Change-Id: I6942235498d47ac945287a607e267e86a9a2069b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 7b005273804d79b0a5943a4803b51f2093280367) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: unify the android tests dummy import filesAssam Boudjelthia2022-03-0242-148/+184
| | | | | | | | | | | | | | This renames all qml files added before to allow qmlimportsanner to include the necessary modules into Android packages, into android_dummy_imports.qml, and also adds a comment in each one describing why it's needed. Task-number: QTBUG-97056 Change-Id: I7fc0514dd9e5bc10849fdd0503547e1a75242414 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 16f0d38d568b3af135f5db862f5868a6bc669c42) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickText: fix fractional pointSize rounding error bugOliver Eftevaag2022-03-023-6/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The layout is initialized with a copy of the current font before the laying out begins. In cases when setupTextLayout() iterates through the main loop multiple times, it will update the layout font, if it differs. (See code below) if (!once) { if (pixelSize) scaledFont.setPixelSize(scaledFontSize); else scaledFont.setPointSizeF(scaledFontSize); if (layout.font() != scaledFont) layout.setFont(scaledFont); } The whole reason why we might update the font in the first place, is because the QQuickText has a fontSizeMode property which can be set to e.g. HorizontalFit, which will cause the layouting to downscale the font in order to fit (assuming the text doesn't fit the space available), instead of eliding. The problem here is that QFont internally uses a float to store the point size, and we would convert that value to an int when temporarily storing it on the stack. This would modify the pointSize value in cases where the pointSize is fractional, and cause a mismatch between the QQuickText and QTextLayout. The lineWidth is set only during the first loop iteration. During successive iterations of the main loop, the layout's font would be updated to one that has either a floored or ceiled pointSize. If the pointSize is a fractional value, and is ceiled when being updated during the second loop iteration, the layout would use a larger font value, which would cause the QTextLayout::naturalTextWidth() to return a larger value than that of the lineWidth, triggering eliding. Solution: Keep the font precision, by storing the values as floats instead of ints. Fixes: QTBUG-92006 Change-Id: Ibf64ac2dfbf262c6aae05b8eb8251d2f5a869b69 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit ae62122a8f57b1de654e891125f19d2e18d6f5df) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qquickaccessibility: wrap dynamic object allocations into smart pointersIvan Solovev2022-03-021-30/+25
| | | | | | | | | | | | | This helps to prevent memory leaks if some of the tests fails. On Android it also helps to prevent crashes when one of the tests fails. As a drive-by: replace QScopedPointer usage with std::unique_ptr. Task-number: QTBUG-77371 Change-Id: Ib0d12f82d967116569266e6f65367bcf89f66c9c Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 3fb70ea89c813072f8c191298bf2c18efc4bdab5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QML: Add indirect library dependencies for tests relying thosePasi Petäjäjärvi2022-03-0210-0/+10
| | | | | | | | | | | Task-number: QTBUG-101341 Change-Id: I8c9413caf24f1d2afc6678d2432c08ac7da2f1c3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit ae989a87bc2dad377e4884531f4a1b24dca897f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android: various test fixesAssam Boudjelthia2022-03-029-5/+47
| | | | | | | | | | | 2nd round of test failures fixes for Android. Mostly resource bundling related issues still. Task-number: QTBUG-97056 Change-Id: I2fac0710a7b5528fcef4480babd0cbf749e488b3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 9bdfea7f1f1ffe16c7a1140b09c94b9d72d24f18) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qmltc::listView is failing with no apparent reasonPasi Petäjäjärvi2022-03-021-0/+2
| | | | | | | | Task-number: QTBUG-101342 Change-Id: Ib660394b5956b891b86dd20cab83c80f5274fa43 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 39855a3ba193f86dd2504c9ec7a8fb4e4d702eb4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickStateOperations: updateGeometry() when setting x/y/w/hUlf Hermann2022-03-012-2/+111
| | | | | | | | | | | | Failing to call updateGeometry() and setting the various dirty flags leads to inconsistent state. Fixes: QTBUG-99436 Fixes: QTBUG-98857 Change-Id: I15240b1670947da29e2f05e7ea41c7586f0b987a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit b81e27e65217f8425acb58c3ac848c728790c872) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: On MoveReg, check if we need to move at allUlf Hermann2022-03-013-0/+22
| | | | | | | | | | As we don't store void, null and empty lists, moving those is a noop. Don't generate invalid code for that. Change-Id: Ica6714acd0ce8a5ddca44d9a397e776eb3df4247 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 074b66e0073b55d32060ffd542a02c811ad763a8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickLoader: Check for QQmlEngine before using itUlf Hermann2022-03-012-0/+47
| | | | | | | | | | | The loader's context may have been removed from the context hierarchy or it may not have a context in the first place. We should not crash then. Fixes: QTBUG-67950 Change-Id: I1058d5b1f978aa040f8b2f018c4357dd7a3ef333 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 79e885537f8546a18d7d9d902d6efe40b1915c96) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist: test cases blacklisted in qquicklayouts:CI Insignificant Platforms Monitor Bot2022-03-011-0/+9
| | | | | | | | | | | | - tst_stacklayout::compile on qnx - tst_gridlayout::compile on qnx - tst_rowlayout::compile on qnx Task-number: QTBUG-101327 Change-Id: I06593184389f11a4dec1fdfc71a2986db046b364 Reviewed-by: CI Insignificant Platforms Monitor Bot <ci_insignificant_platforms_monitor_bot@qt.io> (cherry picked from commit 126afed75f738d93935b3b82f1afddda058ec148) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist: test cases blacklisted in tst_QQuickFileDialogImpl:CI Insignificant Platforms Monitor Bot2022-02-281-0/+3
| | | | | | | | - goUp on qnx Task-number: QTBUG-101329 Change-Id: I5c1a3c98caf5299f53db4b4fb430d4cc29f5bb4a Reviewed-by: CI Insignificant Platforms Monitor Bot <ci_insignificant_platforms_monitor_bot@qt.io>
* QQmlMetaType: Don't duplicate notify signals for extended typesUlf Hermann2022-02-243-3/+29
| | | | | | | | | | | | | We have to add the methods first, so that the properties can be associated with their proper notification signals once we add them. If we add the properties first, the "missing" notification signals are synthesized. Fixes: QTBUG-101155 Change-Id: I1aacbf33a24f7a98d05dece77c804bd7cba8a041 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 57614680f760068c1db39888beba46944f409ff0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmllint: Properly warn about calling propertiesMaximilian Goldstein2022-02-237-0/+63
| | | | | | | | | | | | | | | | | | Previously whenever a property was called the warnings qmllint emitted made it seem like the property was just not found instead of not being callable. Now we will warn if you try to call a property and warn about properties shadowing methods, slots or signals. We also discourage calling variant properties now that may or may not be a function. This change also fixes an assert being hit in isMissingPropertyType due to our previous, lackluster checks. Fixes: QTBUG-101074 Change-Id: I0790b4a4584f3430ee1d8ddf549611225a36cc5b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 1829d7c64c1d8d5b42241135bfead030521cb398)
* qmlmodels: Move QModelIndex from QtQmlMaximilian Goldstein2022-02-224-0/+9
| | | | | | | | | | | | Moves the QModelIndex value types from QtQml to QtQml.Models as they cannot otherwise be properly resolved in tooling. Fixes: QTBUG-100338 Change-Id: I30fc18b388974238ba8353e87ef09f57f8ceabd1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit e2864d6aa97d246546514ec0f97263574d19ec47) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmltc: Handle (simple) deferred properties correctlyAndrei Golubev2022-02-2210-0/+312
| | | | | | | | | | | | | | | | Simple deferred properties occur quite often in QML (throughout Qt Quick, for example), so qmltc should be able to deal with them as with deferred properties Ignore generalized group properties, PropertyChanges and similar types for now. They require more testing and are well out of scope of the tech preview Task-number: QTBUG-100053 Change-Id: I0f3588789d188cd6bec81de0b61d3205b665a917 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 68924be5b5282fb9f0276c743cf450f2e2aa5274) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmllint: Warn about missing property types on current scopeMaximilian Goldstein2022-02-212-0/+10
| | | | | | | | | | | | | | | | Previously we only warned about missing property types when the lookup was not on the current scope but only on an id, parent etc. This change makes sure we also warn in this case and don't produce false positives for an unqualified access. Task-number: QTBUG-100839 Change-Id: I732b8420c0c6b96dd8f93cde66a7f9813e704671 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io> (cherry picked from commit 696f89b1988ed54833406ee8166ffa40e3edaee5) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Perform QVariant conversion in JavaScript semanticsUlf Hermann2022-02-213-0/+35
| | | | | | | | | | | | | In JavaScript we have a number of extra conversions not covered by qvariant_cast. Therefore, add a method to perform a QVariant conversion in JavaScript semantics to QJSEngine, and use that in the compiler. Fixes: QTBUG-100883 Change-Id: I8b0bfa0974bc6b339d2601fb373859bc710788c8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> (cherry picked from commit d0f4e0c037cf61eb5bb559755ee7c9ce6cf6b7dc)
* QmlCompiler: Do not crash on attempts to lookup a function in the scopeUlf Hermann2022-02-213-0/+24
| | | | | | | | | | Rather, reject the code and let the engine handle it. Fixes: QTBUG-100980 Change-Id: Ibcd1249ba3550b40121622752b4ca22d1df3ed2a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi> (cherry picked from commit 69fefd94e8b0ec2aa379d0b75ccaa2c58e3f0933)
* QmlCompiler: Do not generate block comments into C++ codeUlf Hermann2022-02-213-0/+22
| | | | | | | | | | | | The code we're commenting could again contain block comments. You cannot nest them. Fixes: QTBUG-100978 Change-Id: I78685bf29dd30f05e5a3b17abc43ba0b4cb6849e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 795d7dafe5be5cd48aa8225a1343285b3aca2be7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Avoid infinite loop in dead store eliminationUlf Hermann2022-02-213-0/+15
| | | | | | | | | | | We have to mark the required variables also in block 0. And we shouldn't generate empty blocks. Fixes: QTBUG-101011 Change-Id: I0dd19f69f45f507cb83e2ddfba3060de48a940b4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 88147eb3f621e7d972410698d6edca16493d7c66) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Un-blacklist tst_QQuickFramebufferObject: skip offscreen/software renderingShawn Rutledge2022-02-192-8/+9
| | | | | | | | Task-number: QTBUG-65614 Change-Id: I31e2a61e3b2df2432042c8b6028df63cc9cb8d22 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 8fb4fb6d014ba4bbaa7f7d22998cfda4ea5e9855) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickIcon: Resolve source URL relative to outermost property ownerYuya Nishihara2022-02-193-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original attempt, deb238586a "QQuickIcon: Resolve URL relative to current element," works fine for IconLabel itself, but not for Buttons containing IconLabel. // <style>/Button.qml T.Button { id: control icon: // owner: control contentItem: IconLabel { icon: control.icon // owner: this, but should be control } } // user code Button { icon.source: "a.png" } Since IconLabel is an implementation detail of the Button, IconLabel.icon owner needs to point to the Button so the user-specified icon.source can be resolved relative to the user code, not to the <style>/ directory. This patch fixes the problem by explicitly resolving the source URL on setIcon() and propagating the resolved icon object to the inner items. If the relative URL has already been resolved by e.g. Button, the inner IconLabel never resolves the URL again to itself. The problem could be addressed by initializing icon owner only once by Action/Button constructor, but that would lead to dangling owner pointer as icon object could be copied anywhere. So I've added resolvedSource data member in place of the owner pointer. Button { id: dangling } Button { id: victim; icon: dangling.icon } // owner: dangling Component.onCompleted: dangling.destroy() // ... would SEGV (or use after free) if victim.icon.source modified. Fixes: QTBUG-95587 Change-Id: Ibdd07118e79f1e1f36e1faea0289150eca734e27 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit dfc16e40ab43e8062b93c566e4316efe4d4f10a0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Correctly encode inf/nan/-0 into C++Ulf Hermann2022-02-183-0/+33
| | | | | | | | | Fixes: QTBUG-100947 Change-Id: If0b05adac91f687daf697f3510e4cf48e7de4537 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 4c716dd19cf88349acc33eddae28c4e9222a3800) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix tst_quicktestmainwithsetup on AndroidAssam Boudjelthia2022-02-161-0/+5
| | | | | | | | | | | Include imports into the test resources because they might be needed by the test as well. Task-number: QTBUG-97056 Change-Id: If2e0425bdc11024fb2f49c7fe4d6d62f6422f401 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit d736e9a601e6fa03d164e741998627680aa8bf44) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickTableView: don't position the table contents outside the viewportRichard Moe Gustavsen2022-02-161-55/+148
| | | | | | | | | | | | | | | | | | | | If you call positionViewAtCell(row, Qt.AlignTop) for the last row in the table, the row will be aligned to the top of the view, as requested. But this looks really wrong , since it will cause the table to be flicked to a position that causes it to overshoot by a distance close to the height of the whole view, effectively leaving a big empty gap at the bottom. This looks really buggy. This patch will correct this behavior by ensuring that we never flick the table to an "invalid" position while positioning table at a cell using the requested alignment. Instead we clamp the table to the edges of the viewport. Fixes: QTBUG-100680 Change-Id: Id3003df784a0128df28ee2e78e2456e1fa1e11e8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit c3d909ec286962c507e346a8d490b905cdd266f8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix QML warning in tst_QQuickListViewMitch Curtis2022-02-161-1/+1
| | | | | | | | | | The warning was about the delegate's parent being null in QTBUG_48044_currentItemNotVisibleAfterTransition. Change-Id: I54198b26adea137d539f71c8aebc1ba3a18d1e97 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit e523f00974eeccec4525edf85c732659a9c16119) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qmltc: Explicitly unsupport singleton typesAndrei Golubev2022-02-143-0/+19
| | | | | | | Change-Id: I05525f884f239c954527f24ad8842b108b32aff1 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> (cherry picked from commit 121457933dfa40de188063fefe86fa78881e18cd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Appreciate pragma singleton in QQmlJSImportVisitor in Qt 6.3Andrei Golubev2022-02-142-2/+2
| | | | | | | | | | | Partial cherry-pick of dc9de38abe797e835480171a047bf96e98c84e1f This should help qmltc to reject singleton types in a user-friendly manner, without compromising qmllint in 6.3 Task-number: QTBUG-98558 Change-Id: I2c9def171e36ca50d3f3d26b093bca6d376621ed Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix tst_designer and tst_qquickfontdialogimpl tests on AndroidAssam Boudjelthia2022-02-142-0/+8
| | | | | | | | | | | | | These QML files are needed for androiddeployqt to be able to package the QML modules because they're not imported in a normal fashion under a QML file but rather implicitly inside the test cases. Task-number: QTBUG-97056 Change-Id: I792462e88a2d8ca43747cffc050fe60987f90ecd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 98fe8834faaaed65c6c162d0cd2af5609caf14f3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qqmlqt: reliably call QDesktopServices::unsetUrlHandler()Marc Mutz2022-02-121-7/+8
| | | | | | | | | | Use QScopeGuard instead of manual calls, so even a failed test will properly clean up after itself. Change-Id: I321f3560557e58b16cd177c623cb78b5b25111a7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 94c63a7f1236e764fcc8514ab17c993ee1e9aec7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Extend tests for DeferredPropertyNamesAndrei Golubev2022-02-121-0/+77
| | | | | | | | | Document some extra behavior details through tests Change-Id: Id05da7983406a0a61e78496a8e6483e10a7c38d1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 4d98aa998eceb53ce616e9111553b8fdc5fad906) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* TreeViewDelegate: allow app to add custom pointer handlersRichard Moe Gustavsen2022-02-102-6/+62
| | | | | | | | | | | | | | | As it stood, it was not possible to add custom pointer handlers to a TreeViewDelegate, to e.g do an expandRecursive() if using the right mouse button, or holding down ctrl during a click. This patch will change this, so that we only perform the default collapse/expand operations when using a plain left (double) click, and ignore the event otherwise. Change-Id: Ifbdf0903158b65c50d0e36e98ab7e48efaa3e3ab Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 2014101583b89128960f645e57192d1d475767e6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disable failing declarative tests on AndroidAssam Boudjelthia2022-02-1017-3/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to enable testing on declarative for the module as a whole and have some sort of test verification for the mean time, and fix the fails over time. Task-number: QTBUG-100003 Task-number: QTBUG-100014 Task-number: QTBUG-100016 Task-number: QTBUG-100018 Task-number: QTBUG-100020 Task-number: QTBUG-100021 Task-number: QTBUG-100164 Task-number: QTBUG-100166 Task-number: QTBUG-100167 Task-number: QTBUG-100169 Task-number: QTBUG-100171 Task-number: QTBUG-100173 Task-number: QTBUG-100175 Task-number: QTBUG-100176 Task-number: QTBUG-100177 Task-number: QTBUG-100191 Task-number: QTBUG-100253 Task-number: QTBUG-100254 Task-number: QTBUG-100256 Task-number: QTBUG-100257 Task-number: QTBUG-100258 Change-Id: I85bf1501b94f04853a1ca715e35df0a56041308a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit f22d884faff5f68230981fc191527c67aeb8a18f) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix tst_controls missing resourcesAssam Boudjelthia2022-02-098-4/+40
| | | | | | | | | | | | | | bundle all data resources and make sure all imports and bundled. Add dummy.qml files which are needed for androiddeployqt to be able to package the QML modules because they're not imported in a normal fashion under a QML file but rather implicitly inside the test cases. Task-numer: QTBUG-97056 Change-Id: I8be72c06994cc7bd90fb176a19bf69142b225fd1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit b6413335b0a977e5c7218c4d74fb090fa11bf52e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use the new QHoverEvent ctor taking globalPosShawn Rutledge2022-02-091-6/+8
| | | | | | | | | | | We want to give globalPos to every pointer event ctor in general, to avoid bad assumptions. Task-number: QTBUG-100324 Change-Id: I8f744d4f01aec9e860b625a77b258237539deab6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 334aea0aa14eac90a6ff77aad120d76ed0fad372) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>