summaryrefslogtreecommitdiff
path: root/tests/auto
Commit message (Collapse)AuthorAgeFilesLines
* QQuickMaterialPlaceholderText: fix code checker complaintMitch Curtis2023-05-171-1/+1
| | | | | | | | | | | | | | The message was: result of integer division used in a floating point context; possible loss of precision Fixing it revealed a test that relied on it; removed the Math.floor() work-around the test used previously. Pick-to: 6.5 Change-Id: I7c2fde1902d2013ba9fedcadf87ae3b21987fca2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qt_add_qml_module: Set QT_QML_MODULE_QML_FILES correctlyFabian Kosmale2023-05-164-0/+50
| | | | | | | | | | | | | | | | | | | | A QML module might not actually contain any QML files at all (in case of a pure C++ module). In such a case, we so far ended up with QT_QML_MODULE_QML_FILES being set to "-NOTOUND", which later is problematic for qt_query_qml_module. We already have code in place to cover that issue for some variables, just not for QML_FILES. The code is now amended to handle it, too. Moreover, the code block is moved to the end of the function. This ensures that the code for setting a variable always comes before the code ensuring that it is set – which would not have been the case for QML_FILES if it had stayed at its old position. Pick-to: 6.5 Task-number: QTBUG-111946 Change-Id: Ib4501bb4a617b2174ad89e116588aa51353cb17f Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* NinePatchImage: support the compressed texture imageJaehak Lee2023-05-155-5/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compressed texture image is supported by qquickimage and the qquickninepatchimage is inherited by qquickimage. But the compressed texture is not shown when the source of qquickninepatchimage is set as compressed texture because the updatePaintNode of qquickninepatchimage only consider non-compressed texture. This patch is not intended to use the HW compressed image as an actual 9-patch image, but to display them using the super class qquickimage in the case of an HW compressed image other than a normal pixmap image. If the source is HW compressed textures such as ASTC, KTX, and PKM, we have to call updatePaintNode of QQuickImage before checking the validity of the pixmap image. (because nullptr is returned if pixmap image is not valid) The containers themselves (pkm, ktx) are universally supported but the compressed texture formats is up to the underlying 3D API implementation and may vary. So, if the format is not supported by RHI, we skip the test. Refer to QTBUG-113565 for a detailed discussion on texture formats. And when using the software backend, we also skip test cases. Fixes: QTBUG-113446 Pick-to: 6.2 6.4 6.5 Change-Id: I2704f86e94b50b3c187eca359fdc1a69eb217811 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QmlCompiler: Do check specificType on SetLookupUlf Hermann2023-05-153-0/+26
| | | | | | | | | | We may have implicitly invalidated it when shadow-checking. Amends commit b3281f123ea5a8c0e5f8c63fa1568cf7414f9c14. Change-Id: Ia5c54a3a0fa97c61e947ecb0a5b21d410e1bf19a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Update displayText and value of SpinBox (live)Matthias Rauter2023-05-141-0/+397
| | | | | | | | | | | | | | | | | | The displayText of a SpinBox is now updated and sanitized (fixup) by the validator when the user edits the text of the contentItem. The value of a SpinBox can be updated along the displayText on demand (set property live to true) when the user edits the text. [ChangeLog][Controls] The value of a SpinBox can be updated automatically (live) when the user edits the text. The displayText of a SpinBox is updated and sanitized automatically. Fixes: QTBUG-64151 Fixes: QTBUG-85739 Fixes: QTBUG-103205 Change-Id: Id82856190e36d15be2dde8e38091893171f4dad2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* qmllint: Separate logic by import type in QQmlJSImportVisitor::visitOlivier De Cannière2023-05-124-0/+31
| | | | | | | | | | | | | | This patch reorganizes the logic of the import visitor to deal with each import type (paths, qrc: urls, file: urls) separately. This reorganisation fixes QTBUG-108803 which happened because "qrc:" imports were being treated as paths leading to things like ":/untitled/qrc:/untitled/components". Fixes: QTBUG-108803 Pick-to: 6.5 Change-Id: I5af20d10c533455215895be66b5cd98a977fd18a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlComponent: Remove pending QProperty bindings in old createObject()Ulf Hermann2023-05-122-1/+22
| | | | | | | | | | | | | When calling the QQmlV4Function overload of createObject() we end up in a different code path. The problem is the same, though. Amends commit ef6e9f6b75848dfdacdd98cf9e7530f651b3dfca. Pick-to: 6.5 Task-number: QTBUG-99363 Change-Id: I6341243b75d9db1e0fcb80d8d73dab6932d85fd2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Examples: Move Qml plugin example to manual testsOlivier De Cannière2023-05-121-1/+0
| | | | | | | | | Outdated documention has been removed. Task-number: QTBUG-111036 Change-Id: I8db138ff71615a6ed6ac4cebdb365c27252fa5ee Pick-to: 6.5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix reset support for value typesFabian Kosmale2023-05-124-0/+61
| | | | | | | | | | | | | | Our value type refactoring in 6.5 broke reset support for value types when that write happens through virtualPut. Fix that by checking whether the value we're assinging is undefined before attempting any conversion, and reset the gadget in that case (if it is actually resettable). Task-number: QTBUG-113473 Pick-to: 6.5 Change-Id: Ifaa2d045f718fc3cb2d5e75b3626b41175ac3a3b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
* QQuickText: Mark as a dirty node when its ClipRect changesPiotr Wierciński2023-05-122-0/+51
| | | | | | | | | | | Make sure that any changes to ClipRect of QQuickText are properly propagated. Fixes: QTBUG-106164 Fixes: QTBUG-106205 Pick-to: 6.5 Change-Id: Id37099811cf8e10dd510dc5f8086d1323f92af9e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Disable ecmascript tests on AndroidVille Voutilainen2023-05-111-1/+4
| | | | | | | | Building them makes clang++ consume infinite amounts of memory on Android NDK 25. Let's just skip them. Change-Id: Ice37a04140e1a58cd952110092b17f58eae32c56 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QML: Maintain invariant between QObjectMethod membersUlf Hermann2023-05-113-0/+45
| | | | | | | | | | | | | | | If the methodCount is 0, the methods have to be nullptr. Otherwise they have to point to the actual method(s). This is important for the method resolution to work correctly. In particular when cloning a method we have to check for 0. Amends commit 17bd07cbc5b6cf54716e991765ab3088a710d7b3. Pick-to: 6.5 Fixes: QTBUG-113484 Change-Id: Ic31d6e391c1d74a162820232f242a19379f5e4df Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Allow a layout with width or height == 0 to resize its child itemsJan Arve Sæther2023-05-111-1/+11
| | | | | | | Fixes: QTBUG-112740 Pick-to: 6.5 Change-Id: I66327f3fa76d3f1c14b62d0ac42d3fd4c28288b2 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QmlCompiler: Optimize list manipulationsUlf Hermann2023-05-101-0/+5
| | | | | | | | | | | | | | | | | We should never store a list in a wrapper type that is itself a different list. Wrapping and unwrapping requires rebuilding the list in such cases. We can, however, store lists of builtins as-is. There is no need to transform them. Other lists can still be stored in QVariant. As a result, we now need to discern between the access semantics of the stored type and the access semantics of the contained type. They are not guaranteed to be the same anymore. Furthermore, we need to reject "internal" manipulation of QVariant-wrapped lists for now. We might implement them using QMetaSequence, though. Task-number: QTBUG-113465 Change-Id: If09ea345b2fac39bf2abd62a2fce2d354df85b6b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Material: respect background color of flat buttonsMitch Curtis2023-05-101-14/+25
| | | | | | | Fixes: QTBUG-113474 Pick-to: 6.2 6.5 6.5.1 Change-Id: I1fc39082e4cd1763bae56c512741502228b28397 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Value types: Prefer assigning bindings instead of convertingFabian Kosmale2023-05-092-1/+19
| | | | | | | | | | | | When we're assigning a QJSValue to a value type property, we must first check whether it is a binding created by Qt.binding. In that case, we should directly set that binding up. Going through the conversion code path might not necessarily fail, but might instead yield nonsense. Pick-to: 6.5 Fixes: QTBUG-113472 Change-Id: If91e0843f0caf36c96b4c811b9ce8076adfc984f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Re-allow conversion from QObject to QStringUlf Hermann2023-05-093-2/+10
| | | | | | | | | | | | It only worked for the console functions in 6.5. There it was suppressed by the enforcement of type conversions in the basic blocks pass in dev. We have, however, a good enough way to coerce QObject to QString these days. Task-number: QTBUG-112291 Change-Id: I025976cc7fbe430c5cdc607cae3ca48838b24f88 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Properly support lists as method argumentsUlf Hermann2023-05-093-0/+16
| | | | | | | | | | | a, Teach QV4::QObjectWrapper how to convert QQmlListProperty to QObjectList. b, Parse the isList attribute from qmltypes. c, Resolve lists when resolving QQmlJSScope. Change-Id: I70c6d40507de990b45a87eb7d8c7bba279d550e8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Encode "missing" line number as negated address of stack frameUlf Hermann2023-05-094-2/+30
| | | | | | | | | | | | | | | This way we can identify which entry in a stack frame to amend when processing an exception in generated code. However, negative line numbers are also used to signal the position of "Ret" instructions. Since you cannot throw an exception from a "Ret" instruction, those cannot collide, but we cannot qAbs() the line number anymore when saving it in the stack trace. We have to qAbs() it in all the places where it's read. Pick-to: 6.5 Fixes: QTBUG-112946 Change-Id: I24dc4008fb7eab38e4d24e70211c22e46f1b72a7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Allow conversion from QV4::Sequence to different iterableUlf Hermann2023-05-094-0/+88
| | | | | | | Pick-to: 6.5 Fixes: QTBUG-112291 Change-Id: Idd47ea8daf9c54759af6c1feba68bd52d1163615 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Don't try to convert objects with prototypes to QVariantUlf Hermann2023-05-093-0/+27
| | | | | | | | | This is likely to lose some properties. Pick-to: 6.5 Fixes: QTBUG-106266 Change-Id: Ib5a2567d61635a5cf7b3abee7cfef0c073d59e63 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickItem: Do not synthesize replace() for data/resources/childrenUlf Hermann2023-05-091-0/+150
| | | | | | | | | | | | | Those properties are not actually sequential containers. They have some internal logic that refuses certain operations and changes the semantics of others. We should not run things like splice() on them. We can natively implement removeLast(), though. Pick-to: 6.5 Fixes: QTBUG-112949 Change-Id: Ic9fa84f98a68428df9e958ba7fc72b0987e8601f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix duplicate data tag warning in tst_tumbler.qmlMitch Curtis2023-05-101-1/+4
| | | | | | | | | | When the count property was added it wasn't added to the tag. Amends 4dc0c0d4fa4e886650fb72161448bfb1f621b53b. Pick-to: 6.2 6.5 Change-Id: Ice7714621cafde1a185b22a6968120eb5194d7f0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Material: fix clipped floating placeholder textMitch Curtis2023-05-091-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The changes to placeholder text in 20e3d1b522d1b79239e9ac4a6af47ce3648512bd and 5704741a4073ac131782c3dd73cac5cda6800a28 result in floating placeholder text (i.e. the text shown at the top of the control when it has active focus) being clipped when e.g. in a ScrollView. This is probably only an issue for TextArea in practice, since you wouldn't usually put a TextField in a ScrollView, but you can still run into it if you clip it. We don't want to unconditionally set topInset by default, because, as mentioned above, these controls are not always clipped. In most cases they are used on their own, and this issue won't affect them. Unconditionally setting topInset would ruin the layout of existing UIs. So, we set topInset only if the control itself clips (or its Flickable parent in the case of TextArea). [ChangeLog][Controls][Material] The outlined TextArea now sets topInset by default if it or its Flickable parent clips. This avoids the floating placeholder being clipped in those cases. The outlined TextField sets topInset by default only if the TextField itself clips. Fixes: QTBUG-113321 Pick-to: 6.5 Change-Id: I8555e4fc0c7a9800f76b54a84d94f4d04691bc23 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QQmlComponent: Remove pending bindings when setting propertiesUlf Hermann2023-05-062-0/+32
| | | | | | | | Pick-to: 6.2 6.5 Fixes: QTBUG-99363 Change-Id: I2c731ec0b8c5947192accdeb5ef52903d9c7cd90 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Don't crash when monitoring binding removalUlf Hermann2023-05-052-1/+28
| | | | | | | | There are more bindings kinds around. Fixes: QTBUG-113353 Change-Id: If545f56bd61c238431883be3eb013841d96b18bb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmldom: Add more literalsSemih Yavuz2023-05-052-2/+35
| | | | | | | | | | Dom construction fails before this commit if it encounters one of null expression, true and false literals. Add dom representation for them. Change-Id: I2dbb2ebfce83b32426eb5e159fe9e4f0f68c56c3 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Material: don't set all caps for Button textMitch Curtis2023-05-051-3/+3
| | | | | | | | | | | | | The guidelines have changed since Material 2, and they now recommend to use sentence case: https://m3.material.io/components/buttons/guidelines Amends f47f8d69319fa7b0b71cc8036c5bdfd1e8407e70. Pick-to: 6.5 6.5.1 Change-Id: I055f4acc9c1e594b5c87818bcce5abd774b01d04 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* QmlCompiler: Convert thisObject to correct typeUlf Hermann2023-05-043-0/+33
| | | | | | | Amends commit 365b781599993aef933228599eaeb6eb909d9a93. Change-Id: I5775d634ef4e5204cdec2f440b1992b7272866d2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Recognize QList<QObject*> as QObjectListUlf Hermann2023-05-042-0/+25
| | | | | | | | | Since QObjectList is a builtin, we can use it. Pick-to: 6.5 Fixes: QTBUG-112529 Change-Id: I73c59d575092d5cccf28eecb5baaf2fd1e25c76a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qmldomitem: Add more testsSemih Yavuz2023-05-043-23/+118
| | | | | | | | | Add test for null statements inside blocks. Also, add tests for const and var variable declarations. Change-Id: I7eacb74a848e3ee7a4c0b2053de72c902330ce2b Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* qmllint: Do not crash on invalid aliasFabian Kosmale2023-05-042-0/+14
| | | | | | | | | We handle already multiple invalid alias constructs, but the case where the alias is illegal without being an expression was not handled so far. Pick-to: 6.5 Change-Id: If85bc4b61f645a8f1eff3afa4da394c7373d8d53 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QmlCompiler: Disallow reading from values affected by side effectsUlf Hermann2023-05-043-29/+81
| | | | | | | | | | | | | | Instead of accepting the inconsistency between interpreter and compiled code here, we can just detect whether a value can be affected by side effects and refrain from reading it then. Since you can always explicitly reload a value that may have been changed, the resulting compile warnings are easily worked around in user code. Refactoring user code this way also makes it much clearer what is actually going on. Pick-to: 6.5 Task-number: QTBUG-109221 Change-Id: Ica832e39838ef732b0d181364630737fd7709b74 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlDom: Remove the standalone version of QmlDomOlivier De Cannière2023-05-046-685/+0
| | | | | | Change-Id: I2582f3ca0217ec9791ead71393cfa506c28086b8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* tst_qmlcppcodegen: Sort methods alphabeticallyUlf Hermann2023-05-041-2474/+2471
| | | | | | | This way we won't get so many merge conflicts. Change-Id: I2630838d4d310141a6a427a6494c87cb73f79063 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML: Fix call frame conversion for QVariant return typesUlf Hermann2023-05-045-0/+158
| | | | | | | | | | | The function may return a QVariant in place of the actual type because it cannot express the actual type as-is. This case needs special care because QMetaType::convert() doesn't know what to do with it. Pick-to: 6.5 Fixes: QTBUG-112837 Change-Id: Ibf93a28aa6a60d49c5ab63fa7eed5f5a8e58e163 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Do not crash when converting number literals to enumsUlf Hermann2023-05-044-2/+44
| | | | | | | Amends commit 2a21efb5f7a6cac6f6101f2f42fe38f16dc68149. Change-Id: Id7d739b58c723eed9f165951b51ee2e5e55d7fe2 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* qmlls: Do not return relative paths to clients for go-to-type-definitionSami Shalayel2023-05-041-1/+1
| | | | | | | | | | Make sure that there is a file:// in the URI returned to the clients, as else the path will be interpreted as being relative (which it is not). Task-number: QTBUG-113336 Change-Id: I4cc781aaf4514759cfb21f949dd8cc12eb93421a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* FileLocations::Tree: rename treePtr and fileLocationsPtrSami Shalayel2023-05-041-2/+2
| | | | | | | | | | | | | | | | | Rename and add documentation to FileLocations::Tree::treePtr and FileLocations::Tree::fileLocationsPtr. Also remove a helper method in QQmlLSUtils that did exactly the same as treePtr. Both static methods allow to obtain information about the location of some DomItem in the source code. treePtr() is now called treeOf() and fileLocationsPtr() is fileLocationsOf(). Change-Id: Ia6c92f7576b36727ce2fb72b729a4730b5250c3d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Do not stop parsing on top-level Component elementsUlf Hermann2023-05-034-3/+44
| | | | | | | | | | | | | This just creates an inconsistent state where some of the document has been parsed and some hasn't. The only thing we actually need is the log message. Also, fix the warning message. Amends commit 169f0f71665a3a5155f8d63a9c11bc2484353561. Pick-to: 6.5 Fixes: QTBUG-112897 Change-Id: Ie8486909f9bea9ee1b87f2857f7b77fb7cc561e8 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* tst_qmldomitem: Refactor scriptExpressions testSemih Yavuz2023-05-037-359/+367
| | | | | | | | Divide scriptExpressions test into smaller testable units Change-Id: Ib8a3b58e43bfe9a22ae72f35600f67bef163d855 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Material: fix placeholder text alignmentMitch Curtis2023-05-031-1/+48
| | | | | | | | | | The placeholder text should always be aligned to the left according to my tests on native Android via an emulator. Fixes: QTBUG-113172 Pick-to: 6.5 6.5.1 Change-Id: I75ae31e1e6b9846d90ab5034c43f8684698e0ab7 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* tst_qmlcppcodegen: Sort QML files againUlf Hermann2023-05-021-10/+10
| | | | | | | | Keeping them sorted reduces the chance of collisions and makes it easier to find related ones. Change-Id: Ie05cbfefa5805cd27ec91e566dd922107c70d8e2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Relax shadowing checkUlf Hermann2023-05-023-0/+49
| | | | | | | | | | | | | | | | | If we detect a property or method as potentially shadowed, we don't have to abandon all hope. We can still retrieve it as untyped var. Since there are a number of things we can do with untyped var, this may still be useful. In the same sense, we need to treat function calls as untyped when the function in question can be shadowed. Calling functions with var arguments and return types leads to some more interesting situations in the call frame setup, so we fix that, too. Task-number: QTBUG-112480 Change-Id: I238d1cf04951f390c73e14ed9e299f2aa72b68cb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* RangeSlider: Don't update position only if mouse/touch is grabbedDoris Verria2023-05-021-4/+153
| | | | | | | | | | | | | | | | | A mouseClick will cause the RangeSlider handle to move to the click position and we should expect the same for a touch press. We update the position of the handle in handleRelease if keepMouse/ TouchGrab is set to true. However, we don't grab the touch on a touch press in case eg.: a flickable wants to steal the event. So we can remove the check as we shouldn't update the position only if grabbed. This makes the behavior similar to the slider too. Fixes: QTBUG-112945 Pick-to: 6.5 6.2 5.15 Change-Id: Id2cf99416a52b5e42989a4adda1532e3ac550a93 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickIndicatorButton: fix listeners being called after destructionMitch Curtis2023-05-021-2/+4
| | | | | | | | | Remove the listeners of the indicator upon the button's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: I76509ebec601b8f6d004c90cdfbda46e390463a3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* PageIndicator: fix change listeners being called after destructionMitch Curtis2023-05-021-2/+7
| | | | | | | | | | Remove the listeners of the contentItem upon the PageIndicator's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: Ic03a0ea149806de524567b4115255e308df90105 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Menu: fix change listeners being called after destructionMitch Curtis2023-05-021-0/+10
| | | | | | | | | Remove the listeners of the contentItem upon the Menu's destruction. Task-number: QTBUG-98790 Pick-to: 6.2 6.5 Change-Id: Ic1aa842f003c9ced40e88b195021d085e86540eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickFlickable: avoid processing the same event twiceRichard Moe Gustavsen2023-05-022-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If Flickable has an exclusive grab (e.g if it's being dragged), and at the same time, a child has a passive grab (e.g a TapHandler inside a child of the content item), Flickable ends up getting the same pointer events twice. The reason this happens is because Flickable has a childMouseEventFilter. So the flickable will first get all the pointer events since it has an exclusive grab, just to see that the filter will receive the same events once more, as they next are delivered to the passive grabbers. The result is that Flickable will handle all pointer events (move, release etc) twice when it has en exclusive grab, which will even cause the flickable from stop flicking prematurely if the mouse release ends up outside the bounds of the flickable (because of a double call to handleReleaseEvent(), which will set stealMouse to false too early). To fix this, this patch will make sure that we don't handle any pointer events in the childMouseEventFilter if we already have an exclusive grab. After all, having an exclusive grab means that we're already getting the events the "normal" way, and shouldn't handle the same events once more. Fixes: QTBUG-104987 Pick-to: 6.5 6.4 6.2 Change-Id: Iaed49cb860cf50ea38a70a6e546d9dcf25cce444 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Qml: Add script element for return statementsSami Shalayel2023-05-022-0/+30
| | | | | | | | | Implement and test the DOM representation of a JS return statement. Task-number: QTBUG-100084 Task-number: QTBUG-111415 Change-Id: I2c11c0b9be3c93cf5be2bd9db5575335d4be19c1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>