aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* 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. Change-Id: I055f4acc9c1e594b5c87818bcce5abd774b01d04 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 4a7d15c74bf3d58645fcfc1da5882a8cc5023e7e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* RangeSlider: Don't update position only if mouse/touch is grabbedDoris Verria2023-05-041-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 Change-Id: Id2cf99416a52b5e42989a4adda1532e3ac550a93 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit f6fb9252c6af824ee4544b34a039c20872c5b4ed)
* Material: fix placeholder text alignmentMitch Curtis2023-05-032-15/+96
| | | | | | | | | | | The placeholder text should always be aligned to the left according to my tests on native Android via an emulator. Fixes: QTBUG-113172 Change-Id: I75ae31e1e6b9846d90ab5034c43f8684698e0ab7 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 4ab11d03ac2aecec3d4d304e566c9bb161e22090) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* cmake: Fix config for the networkaccessmanagerfactory manual exampleOlivier De Cannière2023-05-032-17/+18
| | | | | | | | | Amends: d023d149d934897515a532a483def76801b93585 Change-Id: I54adf85c1ff7da2d6cc1aa13b9c9c5e1a334c1d8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit c1983b446b9ba352132c9e90181197e608d7edc9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Flickable: Send movement signal when flick startsSeokha Ko2023-04-291-0/+76
| | | | | | | | | | | | | | If there are multiple moves between touch down and release, but they are merged, or if there is only one move, flick occurs but no movement signal is generated. So, send movementStarted if the view is moving in handleReleaseEvent Fixes: QTBUG-112924 Change-Id: I774799bac2a00296a72005dcfa9ade6683836d08 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit e6a363efe86dd6acbceade28d5eddbdca9c7b805) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QV4: Fix formatting options for the search component of UrlObjectOlivier De Cannière2023-04-281-0/+8
| | | | | | | | | | | | | | | This fix changes the way the search component of UrlObjects is formatted by passing the correct options to QUrl::query. Namely, the EncodeDelimiters flag is no longer set. This now allows for correct encoding of backslashes in search strings. Amends 6cca731f3e1304ce98f1ec18af42e3bd06001eea. Task-number: QTBUG-111014 Change-Id: Iee544dfc7ad6ba374601c8ec4690d11bf07c9b6a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit af4cd4763a7e0a9b2b52de91ea07eff9be3aa9b0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist failing tests in tst_flickableinteropSeokha Ko2023-04-281-0/+3
| | | | | | | | | | | | | pinchHandlerOnFlickable fail with QTBUG-112924. Blacklist it for now. It will be handled in QTBUG-113226 Fixes: QTBUG-113226 Fixes: QTBUG-112924 Change-Id: I58c646f957fb6f397405dc477d00eee770602e80 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 407675b1913a5138c636a730cf3f6a65ffed87fb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Make the colorresolving benchmark also a benchmark for cmakeVolker Hilsheimer2023-04-281-15/+10
| | | | | | | | | | | Using qt_internal_add_test for a benchmark gives it a _check target, not a _benchmark target. Use qt_internal_add_benchmark instead, link against QuickTest, and set the QUICK_TEST_SOURCE_DIR variable explicitly. Change-Id: Id72f2623b7edaa538ef3ff2cb3f505506652ee5a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 741b5c6b51a17bc87fd898d056e5dbb6ccd1efc7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix StackLayout to keep the current visible item after insert/removalJan Arve Sæther2023-04-261-2/+3
| | | | | | | | | | | | | | | | | If an item is inserted or deleted at an index less than or equal to the current index, StackLayout.currentIndex will be updated in order to reflect which is the current visible item. This is consistent with QStackedLayout, QStackedWidget and TabBar [ChangeLog][QtQuick][Layouts] StackLayout will now update currentIndex if an Item is inserted or removed at an index less than or equal to the current index. Task-number: QTBUG-112691 Change-Id: Id1d687e309c8f199a4f68698b53ca7c169f17dcd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit adc3d8b2e40ca2853b4baf5ea893021a799c21f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* XHR WebDAV test: don't expect more than Keep-Alive in Connection: headerEdward Welbourne2023-04-261-1/+1
| | | | | | | | | | | | | | | Only one XHR test expects Keep-Alive, Upgrade, HTTP2-Settings as the Connection: header, which fails when I run it locally, and I can see no reason why that test [0] would expect it, where all the others just give "Keep-Alive{{Ignore}}" (or "close") in their .expect files, so do the same for [0] as well. [0] sendPropfind:Send PROPFIND "allprop" request for collection. Change-Id: I09cafcf282861b87693b5782f34e2fb84c888ff1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 0ca564ed40e353a7b0851ccc7b81975b194f1cda) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix StackLayout to react to reordering siblingsJan Arve Sæther2023-04-251-0/+107
| | | | | | | | | | | When siblings in a StackLayout are reordered, we need to react, since the sibling order corresponds to the "stack order" Fixes: QTBUG-112691 Change-Id: Ie768af34bf5ee9d15ca67d61a64115f3df31990f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit a0fb254915ba9d4507c2f17bdbe79ebeaabb3cdf) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qquickwindow: Clear hover when a window is hiddenDavid Edmundson2023-04-251-0/+61
| | | | | | | | | | | | | | | | | | This fixes a bug in the following sequence: - user opens a window - the window is hidden whilst under the mouse - later the window is reopened without the mouse being under the window - with the lastMousePosition set an item underneath where the mouse used to be gets activated. On X11 we get a Leave event for the hidden window, this is not true for wayland. Change-Id: Ib14e8dbe29f1ad9a71a488b671d226be1d017b8d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 40889ffe52dd69b9bb4a3794106404b5347dd6d2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickItem: item stays pressed after DoubleClicksSami Shalayel2023-04-242-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | Amends 72651a50f83aa72998822312c7b5c6235d28978f. This commit decided to ignore double clicks in the virtual QQuickItem::mouseDoubleClickEvent(). If a subclass inheriting from QQuickItem wants to not ignore a double click, it should override mouseDoubleClickEvent() and handle the double click event accordingly. Fix QQuickMouseArea::mouseDoubleClickEvent(QMouseEvent *event) to *not* call the base implementation in QQuickItem after handling a double click, because QQuickItem sets that double-click MouseEvent back to the ignored state. This was leading to weird behavior on platforms with touch screens like Android or IOS where buttons "got stuck" after a double click. Fixes: QTBUG-112434 Fixes: QTBUG-109393 Change-Id: I774189fbcb356b07336f35f053e05a12c34ce602 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit d7fac6923a6d4e4ac7dc22458256366968acbdb3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* MenuBar: Clean up and stabilize test caseVolker Hilsheimer2023-04-221-9/+10
| | | | | | | | | | | | | | | | | The test case fails frequently and flakily locally with the Material style, because the exit transition of the static menu interferes with the opening of the dynamic menu. Wait for the static menu to be completely done with the exit transition before continuing. As a drive-by, replace all QCOMPARE(actual, true/false) patterns with QVERIFY. Task-number: QTBUG-104323 Change-Id: Ide90f0094b05d628a0eb047248a72c35bcb7cdc3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> (cherry picked from commit c39f407a5a5df4bc25ca338c5c381869c1bc9ac7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Accessibility: respect value in attached Accessible in controlsVolker Hilsheimer2023-04-221-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickItemPrivate::accessibleRole is virtual and called by the framework to determine the role of an item. The default implementation checks and respects a possible Accessible attached object. However, subclasses that override the virtual don't, so the attached properties are ignored, and the class-specific implementation wins. This makes it impossible to change the role of e.g. a checkable button. To fix that, move the code respecting the attached object into a non- virtual function that the framework calls instead, and only call the virtual member if there is no attached object, or if that object is not initialized with a role. Replace calls to the virtual from the framework with calls to the non-virtual wrapper. Do this for both QQuickItem and for QQuickPopup, and adjust the logic in QQuickControl types that create an attached object and initialize it's role when accessibility becomes active. Use the non-overridable effective role value for that as well. Add a test case, and to avoid any new framework calls to the virtual, make it private. Fixes: QTBUG-110114 Change-Id: Ia709cecbd181b6d8ee3297a4af60c1e7db9a2c51 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 3c08d08ae2bbd449cc0579a1b3cb499383c7a60c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickItemView: Skip instantiating delegates if size is 0Fabian Kosmale2023-04-209-3/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the area of a (List|Grid)View is 0, then instantiating delegates is pointless, as they couldn't be shown anyway. However, our current logic could not handle this case well, and would end up instantiating a delegate for every delegate entry if their size also ended up being 0 - you can after all fit infinitely many 0 sized items into a zero sized container. Detect this situation in QQuickItemViewPrivate::refill and the applyInsertionChange implementations. Note that we only exit early if there are no visible items and the view is zero-sized; if there are visible items, we still want to ensure that they are removed after all. We also need to adjust a few tests which had zero sized views to no longer be zero sized; otherwise they wouldn't have created their delegates in time. [ChangeLog][QtQuick][ListView][Important Behavior Change] If a ListView has size zero, it won't instantiate any delegates until its size becomes non-zero. Fixes: QTBUG-110625 Fixes: QTBUG-89568 Fixes: QTBUG-51773 Change-Id: Ibe0e6fa5f01784016882522c120d2fee38df285b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 37c25c6e74f4f74d7cca8f5b0f12a40ec0354f7e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Don't crash on bad list type in signatureUlf Hermann2023-04-191-0/+4
| | | | | | | Change-Id: I2c4a4ffa810258134a29b87aff46e8eb544b6a55 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 7c2e31c34fb145ea448b58a310420244d8a80481) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Binding: Reevaluate when before the target changesFabian Kosmale2023-04-192-0/+37
| | | | | | | | | | | | | | | | | ...and do not warn about missing properties if when is disabled. Besides avoiding spurious warnings, this also avoids modifying a property only to restore its binding/value directly afterwards. Note that when the binding gets re-enabled, we still trigger the warning. Fixes: QTBUG-112860 Change-Id: I5ddd32f2de2dec9da372b08ab4bb5bdb88873e51 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 82f2ee8027f733cec5961aac27a171cf0b78a70b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QmlCompiler: Don't crash when checking for enum problemsUlf Hermann2023-04-191-0/+4
| | | | | | | | | | When checking for CallProperty we want the call base, not the accumulator. Change-Id: I24ac066dd440bde459e20b3cf962af04ca531629 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 1ceaeab9827b95725231e714754e058e006eb1ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickListView: relayout when section geometry changesWang Chuan2023-04-192-0/+86
| | | | | | | | | | | | | | | | | | | | Section delegate items will now notify the ListView when their geometry changes. Enabling the ListView to call layoutVisibleItems to rearrange the delegate items based on the geometric changes made to the section delegate. The listener is added when the item is created or fetched from the cache. The listener is removed when the item is hidden or removed from the scene. Fixes: QTBUG-101985 Fixes: QTBUG-100002 Change-Id: Ia7617424a8447ba82f62629d93b6a000a72bfc02 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit b994c7ffaf12373ac568a38e3968d620a07c3052) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Material: fix TextArea decorations when in a FlickableMitch Curtis2023-04-192-2/+60
| | | | | | | | | | | | | | | | | This patch fixes the following issues when the Material TextArea is attached to a Flickable: - Floating placeholder text scrolls with the Flickable. - When text is cleared without the control having focus: - Floating placeholder text is positioned incorrectly. - The floating text background outline gap is still open. - The background outline color is incorrect when the control has focus (used primaryTextColor instead of accentColor). Task-number: QTBUG-112650 Change-Id: Icfa3517e4abcb1209ea2291dabdec225011f19ef Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 2d99c70f982da92c70c022551cf456877141a5c8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* TableInstanceModel: handle roleName invalidationRichard Moe Gustavsen2023-04-183-5/+69
| | | | | | | | | | | | | | | | | | roleNames are generally guaranteed to be stable (given that QAIM has no change signal for them), except that resetting the model is allowed to invalidate them. TableInstanceModel did so far not take this into account. Handle this case correctly by snapshotting the current roleNames before the model is reset. Afterwards, if we detect that roleNames has changed, we throw the current model set up away and rebuild everything from scratch – it is unlikely that a more efficient implementation would be worth it. Fixes: QTBUG-111987 Change-Id: Id1e3b8e4f983c0f00fc7b30bd4897f1f7fcc3792 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit fd489252a7c904c70afa299528b164d17e628dd8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* StackView: emit depthChanged when clearing with transitionVolker Hilsheimer2023-04-181-0/+9
| | | | | | | | | | | | | | | | When a transition is used in the call to clear(), then we pop the top element off the stack and start the transition for it. If we read the old depth after doing that, then it will be off by one and prevent the emission of the changed signal if that was the last element on the stack. So read the old depth already before we pop, and add a test. Fixes: QTBUG-84920 Change-Id: Idae619efa25729fafbf238cb4db62472042b1cb7 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 838b9ee9fe3ad26e5b1fac1616cb575288f4f8a1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickTreeView test: Fix valid compiler warningVolker Hilsheimer2023-04-181-1/+1
| | | | | | | | | | | QQuickTreeView::depth returns an int, not a bool, and rowToExpandDepth is used in arithmetics and to compare to an int, so declaring it as a bool is definitely wrong. Change-Id: Iea127e6cc61e5a8195dc537ad4e62dc88570f874 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit c23afb324708af2489a88a187d88b23d0e884eb3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Quick item view tests: fix compile warningVolker Hilsheimer2023-04-182-2/+2
| | | | | | | | | | | | Don't use QCOMPARE for a true/false test, use QVERIFY. This conveniently fixes the (bogus, perhaps) compiler warning with MSVC about comparing a quint32 (the underlying type of the polishScheduled bitfield) with a bool. Change-Id: Ib273ee30906e09955e849e65af2b7ff8ce3e2512 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 77886b496d36bfe038372faca76ea8516e7579d0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* ComboBox: don't open on key release unless press was handledVolker Hilsheimer2023-04-181-0/+29
| | | | | | | | | | | | | | | | If a Keys handler eats the press of the activation key, then the release event shouldn't show the popup. The default keyPressEvent handler sets the pressed state to true, so we can test that state to see if we should act on the corresponding release. The key release event should still be accepted to stop propagation. Add a test case. Fixes: QTBUG-109721 Change-Id: Icb76453733d05cba59fdfb365b0cebf710be5f01 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 3cbf7213df060cd26c49a4155eb10caa3727d094) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickWidget: don't crash in accessibility when reparentingVolker Hilsheimer2023-04-181-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QAccessibleQuickWidget delegates all calls to the QAccessibleQuickWindow, which it had as a member that was initialized at construction time to the offscreenWindow backing the QQuickWidget. Both are QAccessibleObject subclasses, and QAccessibleObject stores the object it wraps as a QPointer. The QAccessibleQuickWindow's object becomes null when that offscreen window gets destroyed (for instance, when reparenting). We might get called by the accessibility framework in that situation, as we are clicking a button and the hierarchy changes. To prevent crashes, we need to test for nullptr in QAccessibleQuickWindow. However, that alone would leave us with a useless QAccessibleQuickWindow, and in turn with a useless QAccessibleQuickWidget instance. The QAccessibleQuickWindow is not directly exposed to the accessibility framework, and all calls to it are dispatched through its QAccessibleQuickWidget owner. We can't repair the QAccessibleQuickWindow but we can replace it entirely if we manage it as a heap-allocated object. Use a std::unique_ptr for that, which we can reset with a new instance created from a new offscreen window in order to repair things. We can now either test in all functions whether the window's window is still alive. Or we can handle the destroyed() signal of the offscreen window. The latter solution is a bit more involved, but generally more scalable as we don't have to remember to check, and possibly repair, in each QAccessibleQuickWidget function. Fixes: QTBUG-108226 Change-Id: Ib19c07d3679c0af28cb5aab4c80691cc57c4e514 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 645aaa25b17ad3437e63877576ef7dac7966a934) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix visibility of scroll bars in ScrollViewMitch Curtis2023-04-171-3/+22
| | | | | | | | | | | | | | | | | | | When imperatively assigning a contentItem, we need to make sure that we respect the policy of the scroll bars, otherwise they could end up visible when they shouldn't be, and vice versa. This patch also sets the ScrollView as the parent item of the contentItem, as a ListView assigned imperatively may already have a parent item, and so setContentItem_helper will not set one. When setting the parent item, we also need to ensure that the stacking order is correct, otherwise the scroll bars will be behind the contentItem and can't be interacted with. Task-number: QTBUG-106118 Change-Id: I88d342282ea6d202cbe0f776a6bf4fb1f9cadc48 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit db8f3607e0fb640b6bc1bb69a81ecd5f937dc184) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* MultiTouchArea: only subscribe to hover events when enabledVolker Hilsheimer2023-04-152-0/+39
| | | | | | | | | | | | | | | | | | | | | | | On macOS we always subscribe to hover events in the constructor so that we can enable touch event handling when the mouse enters the area. However, a disabled item should not accept hover events, so we also need to override itemChange so that hover-acceptance is flipped based on the enabled state. Items should also never accept hover events, they should always propagate. As the events are accepted by default and ignored in the default event handler implementation in QQuickItem, we need to ignore explicitly when we override. Do that by calling the parent class implementation explicitly. A disabled MultiPointTouchArea should also not subscribe to touch events, even when the mouse enters. Fixes: QTBUG-107037 Change-Id: Ifa57cb2af4fbf11a0c8eacde87d80e60afa3f895 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 3991a2e8cabb3df3f06531fbc042d71f5f042dab) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix stack layout index when loaded asynchronouslySanthosh Kumar2023-04-141-0/+32
| | | | | | | | | | | | | | | | Lazy loading of stack layout causes incorrect index value in the attached property for the child items. This is because, attachedProperties are created and updated for the child object, after being added to the stack layout. This patchset triggers childItemsChanged() to reset child objects of stack layout with right index value. Fixes: QTBUG-111902 Change-Id: Iad06d028d0f977189b5da1122904dc754060a609 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit e397e5b43c9a9844e652adf5ef55365e0a40f57b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Do not crash if resizing a layout that got its child destroyedJan Arve Sæther2023-04-131-1/+38
| | | | | | | | | | | | Normally updatePolish() would call ensureLayoutItemsUpdated(), but in some cases the layout might be resized before the updatePolish() is processed. We therefore have to also call ensureLayoutItemsUpdated() from rearrange() Fixes: QTBUG-111792 Change-Id: Iab24dafc26dfa86975348c92244034f7ff825e5f Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 24f5695d35f0ef7a8f48502de3d4810d21fb3d3f)
* qmlformat: change comment handling behaviorSemih Yavuz2023-04-1210-1/+42
| | | | | | | | | | | | | | | | | | | | | | | Cumulative commit for adding zero-length comments in qmljsengine and also handling of empty lines after comments. qmljsengine only adds comments if the relavant comment length is larger than 0. Allow adding zero length comments since empty comments might be useful and required in some situations. Unlike the other formatting tools (clang-format, rustfmt) qmlformat didnt respect the emptylines after comments and stick the comments to the associated element. Change this behavior such that a newline/ blankline is added(but no more than one). A few tests in qmldom/reformatter needed to be edited due to this new behavior. Fixes: QTBUG-111231 Change-Id: I2fcdda0bfe569b7a1d19c4058e1604cb0d73291d Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> (cherry picked from commit b5274d073bf015b764c12ce4121d3be6d2378cc9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_QQuickTextInput: Stabilize clipboard related functions on XCBAxel Spoerl2023-04-122-31/+13
| | | | | | | | | | | | | | | | | | | Even if compiled with QT_CONFIG(clipboard), a functional clipboard might not be available on XCB (e.g. due to restrictions on CI VMs). This patch adds an explicit test for XCB to platformquirks_p.h. It skips the test functions canPaste() and canPasteEmpty(). As a drive-by it constifies local variables in canPaste() and middleClickPaste() and unifies the skip message. It also removes the BLACKLIST entries for clipboard-related tests on opensuse. Fixes: QTBUG-95940 Change-Id: If6da9b589e98c1f63435f3d444567ce310ddee8a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit c6fdaa5ab049c7baf19a912118dd55b96ef540d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Enable tst_QQuickCanvasItem on AndroidVolker Hilsheimer2023-04-122-3/+2
| | | | | | | | | | | | | | | | | The test mostly passes in the emulator and has generally no reason to fail in CI. Test functions that should be blacklisted can be added to BLACKLIST file, or QSKIP'ed if they crash, which none of them do. Blacklist the test_save function, which fails on Android as we don't have permission to write to the file system. Fixes: QTBUG-103257 Task-number: QTBUG-41043 Change-Id: I5ef99a01dc26d9290be91675a5ff15e4de59e812 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 0230ceaec8b0b2ed9ccf7573d2713aa82272cc2b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix PinchHandler.persistentTranslation; test cumulative native gesturesShawn Rutledge2023-04-123-9/+42
| | | | | | | | | | | | | | | | | | | | | | Since we do not want persistentTranslation to be always the same as target.position, clearly we cannot use xAxis/yAxis to store the initial target position: thus the startPos() function was wrong, and is now removed. We need to store it in a separate m_startTargetPos variable like DragHandler does, and as PinchHandler did before 7867a683fcb938939fb2837a26ac8e1941e3fe08. Add an internal doc comment to clarify the arguments to QQuickItemPrivate::adjustedPosForTransform(). tst_QQuickPinchHandler::cumulativeNativeGestures() now checks the result of adjustedPosForTransform(): how far the target item moved. Fixes: QTBUG-111220 Change-Id: I04237cb82a1abaaeab873a0d887acaf322f262ce Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 07aaa7c1b68f035f71a6ef77d330dddac6a96512) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix TapHandler signals in combination with exclusiveSignalsShawn Rutledge2023-04-121-2/+20
| | | | | | | | | | | | | | TapHandler does not emit any singleTapped or doubleTapped signals after emitting it once, if exclusiveSignals is set to `SingleTap | DoubleTap`. This change corrects the behavior by resetting m_tapCount properly. Fixes: QTBUG-111800 Change-Id: Ice7af2f41c2f30448004033d8330e733abe44110 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 951ab9f3c06311458bc7d44c127e034af3e4cff5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Ignore tap events for table view when interactive is disabledSanthosh Kumar2023-04-122-0/+74
| | | | | | | | | | | | | | | | | | | TableView uses QQuickTapHandler internally to handle tap events. This handler accepts tap events considering pointerNavigationEnabled property of table view. TableView accepts mouse events if either 'interactive' or 'pointerNavigationEnabled' property is set as true, otherwise, it has to pass mouse or touch events to the below item. This patch introduces QQuickTableViewTapHandler inherited from QQuickTapHandler that can explicitly check pointerNavigationEnabled property of QQuickTableView during wantsEventPoint to either accept or ignore tap events. Fixes: QTBUG-108596 Change-Id: I330ae319706b6dbadc3a7319f62d636708aab995 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 79d61b3ab7fcc75454b81d5e78d4f404a9c4bd6c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qquickimage: modernizeVolker Hilsheimer2023-04-111-8/+11
| | | | | | | | | | Replace foreach with ranged-for and brace-initialize lists. Change-Id: Ieccebcf953d36ffa1dcaf0a1eebef21f2e9074a4 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit e62f489209e1cf03d5bcb16247d84d5e7563948c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Unblacklist tst_qquickimage:mirror testVolker Hilsheimer2023-04-111-3/+0
| | | | | | | | | | | | | The test has no business failing on macos-12 when it passes on macos-11 and macos-13. The test does depend on screen grabbing, which might have been temporarily resulted in flakiness due to a system dialog or similar disturbance. Fixes: QTBUG-98402 Change-Id: I5fe548ec63e3ad6639a290cd83a96cfabdf4fb4b Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit c42b41cfe88fce32f2407dcd67158517000c9e39) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix problem with subFocusItem on non-OpenGL QSGAllan Sandfeld Jensen2023-04-071-0/+45
| | | | | | | | | | | | | | | | The subFocusItem state was forgotten because the old parent was deleted, before its focused child was reparented. The test doesn't pass on Android and makes the test process exit with error. Since it prints warnings that indicate issues further down in the RHI stack, we'll skip it for now on that platform. Task-number: QTBUG-112696 Change-Id: Ibb32a11564ff6fbb2091c241d508f12479b234b0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 30e46e37a3268c5c4ba0730fb7487342961a4c78) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qqmlxmlhttprequest: remove unneeded property set in redirectsTasuku Suzuki2023-04-051-3/+0
| | | | | | | | | | | | | "expectedText" is not defined in the files below - redirects.qml - redirectError.qml - redirectRecur.qml Change-Id: Ib07f72fc902b90286ec709399216be7b2fce392a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 3674ef3f8808649e3965be40bff4dc9bb4480070) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Replace AUTO_RESOURCE_PREFIX with QTP0001 policyAmir Masoud Abdol2023-04-042-2/+4
| | | | | | | | | | | AUTO_RESOURCE_PREFIX is deprecated, and we should start using our CMake policies instead. Change-Id: Ic0b317929a2d9b9297d113f4382e895d63673e1d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 4bfb341e36edbf82bffeb41cea57cae986a49a39) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlStandardPath: always use QUrl::fromLocalFileRichard Moe Gustavsen2023-04-031-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | It turns out that the changes done in 4e38a6a1948b69cab1 was too hasted. QStandardPaths are supposed to always return local file paths, so converting them to URLs using QUrl::fromLocalFile() was semantically correct. The fact that the "local" file path on iOS was prefixed with a scheme was not relevant - it should just be seen as a part of the local file name. The iOS plugin that uses the path even expects the URL to start with "file:" ("file:assets-library://"). This patch will therefore partially revert 4e38a6a1948b69cab1, but keep the auto tests. It turns out that it's the iOS plugin that loads the image that needs to be fixed. Change-Id: I1daaec7596bdbb8da5aec65c48bfd048f0c82d9d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 9edd4becff099aae2a31f8e1af9f44393990a71d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Models: Avoid crashes when deleting cache itemsUlf Hermann2023-03-312-0/+62
| | | | | | | | Fixes: QTBUG-91425 Change-Id: I58cf9ee29922f83fc6621f771b80ed557b31f106 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0cfdecba54e4f40468c4c9a8a6668cc1bc0eff65)
* Doc: Revamp "Extending QML" examples into a tutorialOlivier De Cannière2023-03-301-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The examples in the "Extending QML" series were often redundant with the information of the "Writing QML Extensions with C++" tutorial, had outdated code and sometimes had no documentation. The examples that covered topics not mentioned in the first tutorial were revamped into a second "advanced" tutorial extending the first one. The others were removed. The remaining examples were largely based on the same example code of a birthday party. This code was slightly adapted and separated into 7 states, each building upon the previous, with the code change illustrating the associated feature. A tutorial page, in the style of the first one, was added documenting the different QML features and the required code changes in the example project. Links in the documentation from and to the affected pages were update as best as possible. Fixes: QTBUG-111033 Change-Id: I9d97e8b32b128c1624d67525996fa14d493909d3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 405bd4299819e39397cea0090a9442fd4b6ce911) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Rename and rephrase pages for QML {script|type} compilerUlf Hermann2023-03-301-1/+1
| | | | | | | | | | | | | | | | They describe the user facing concepts, not the actual tools. In the case of QML script compiler there are two tools that implement it. Clarify what qmlsc and qmlcachegen actually do and highlight the differences. Also, lower case all references to type compiler and script compiler. They are not product names and therefore should not be upper cased. Change-Id: If800d368c904bd829d88b7376b107b1c5351a1ed Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit a6f5a3886d84d316da54c04a937efb13d246b7b0)
* Allow disabling internal deferred propertiesHenning Gruendl2023-03-294-3/+66
| | | | | | | | | | | | | | Add environment variable to allow disabling internal deferred properties. We should not make generalized group properties that point to different objects immediate. However, for the intended use case it's enough to disable internal deferred properties. Task-number: QDS-8545 Change-Id: I22d31587290020ec03274a3373a30be196185b84 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 7ad7eb606a0831568dc55c782d1a7cdc8fb395b3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* AnchorChanges: Fix restore logicFabian Kosmale2023-03-292-0/+66
| | | | | | | | | | | | | | | | | | | | The logic to decide whether a state change triggered a size change. When AnchorChanges did not remove all old anchors, we might end up with an anchor configuration that changes the size of an item (e.g., anchors.left and right being set), even if the new state only adds a single anchor, e.g. anchors.left. Moreover, we need to pass the correct dirty flags to setDirty, otherwise the UI will not actually reflect the state of the Item. As a driveby, fix an accidental double negation of qt_is_nan for height. Fixes: QTBUG-112354 Fixes: QTBUG-106677 Change-Id: I6c456fbdc314672f4fcbe740d941b44183fd5500 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit f2c108518cd7161bbf38502975a5bb798a66d5dd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Stabilize some tst_QQuickFileDialogImpl test functionsMitch Curtis2023-03-291-0/+9
| | | | | | | | | | | | As with 989e05a0b8240778c9f249edea5c9d27d68f8e0f, ensure that the ListView delegates are up-to-date before checking the selected delegate. Task-number: QTBUG-101488 Change-Id: Ib33df6d1a67d2090a5e6af52783212c2979930fb Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 2b979a29795c8be957c44d38b8b3939605c6a0f2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve tst_QQuickFileDialogImplMitch Curtis2023-03-291-20/+41
| | | | | | | | | | | | | | Instead of hard-coding the list of expected visible file delegates, move that logic into functions and call them. Also, implement Clazy's suggestion of using the multi-argument overload of arg(). Task-number: QTBUG-101488 Change-Id: Iafb35329c30452b5689303d962675ea908e0f32a Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 590485bcc024e103f9ea56d5c1518b88679afc2b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>