aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
| | | | * mouseDrag(): ensure that intermediate moves are done for all dragsMitch Curtis2019-11-261-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code checking if the intermediate move distance was less than the drag threshold, but without accounting for negative distances. Since the negative distances were naturally less than the drag threshold, the intermediate distances were set to zero and the intermediate moves were never done. In practice, this means that mouseDrag() never did intermediate moves (i.e. what happens during a drag in real life) for drags that go from right to left or upwards. Task-number: QTBUG-80152 Change-Id: Ic27021f5ce5ba2937e95fb2dfb532bd2136f4205 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit fad8ef3e4133538e3785d7067c35c652bc894711) Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| | | * | Add binary compatibility files for qtdeclarative 5.14 branchMilla Pohjanheimo2019-12-134-0/+60209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BC files built against 5.14.0 added. Change-Id: I4904ad2bbe57ca5e0bef40b349dcceaee1803f74 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | QQmlPreview: remove the ignore of :/qgradient/Giuseppe D'Angelo2019-12-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new gradient presets are no longer in the resources. Besides, having those presets under that path was a bug -- all Qt-related resources *must* go under :/qt-project.org/. Change-Id: Id64225b53b65d54d1272976dadc0e12529da276e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | | | Port paintbenchmark to QOpenGLWidgetUlf Hermann2020-01-091-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGLWidget is gone. Change-Id: Ief5d1edeff96afa739b58acbb3d83779f78d7838 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * | | | Remove D3D12 scenegraph backendLaszlo Agocs2020-01-0624-1724/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-79925 Change-Id: Id3f0a688f47efaf1653c85d23ef49618ed09c931 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | | | tst_qqmlpropertycache: Avoid memory leaksUlf Hermann2020-01-021-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All the property caches come with one initial ref. The QQmlRefPointers need to adopt that one. Change-Id: I27ae2226c39888e2e5d99f593c2857456c048f2c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * | | | tst_qqmlqt: Avoid memory leaksUlf Hermann2020-01-021-109/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QScopedPointer for results of QQmlComponent::create(). Change-Id: Ia926eb461df9106490a1b91376c6c9f69f390759 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-12-141-0/+1
| |\| | | | | | | | | | | | | | | | | | Change-Id: Id41f415227f07bb9da8fafc676f4d22ce75544e3
| | * | | WorkerScript: serialize QUrls wrapped in QVariant as stringsUlf Hermann2019-12-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's rather strange that we so far could serialize lists of QUrls but not single QUrls. With this change in place we can remove the hack that exposes QUrls in sequence objects as strings. Change-Id: Ide898b1942deda92142331773ed5637871ca7ab1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-12-1274-130/+35478
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/types/qqmlbind.cpp Change-Id: Ib992d1a7ac6c1a96d39819be6f23955dc31b44b2
| | * | | QQuickWorkerScript: avoid arbitrary delayFabian Kosmale2019-12-111-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iae4af147488f4d770ee3bc12b1e231425c5a5d6f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | | Regenerate rhi shadersLaszlo Agocs2019-12-114-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generated GLSL code for version 150 is now slightly different (we now disable the unnecessary GL_ARB_shading_language_420pack to prevent failures on older OpenGL implementations and core profile contexts). Task-number: QTBUG-80690 Change-Id: I4c6242284c1239af9f12bd2fdac3c33707ac88e7 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| | * | | QQuickTextInput: Fix validators testUlf Hermann2019-12-111-19/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The behavior of QDoubleValidator has changed in qtbase, in commit 3359b29c99581f52acf033489ad35884a01ccac8. "12," is not an acceptable input anymore. Adapt the test to reflect this. Change-Id: I0daaae2f84325b911263ee0545523ce3cc322049 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | | Make inputmask 'X' mask character require non-blank inputEirik Aavitsland2019-12-101-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation for the X mask would accept any printable character. Since that includes the blank character, there was no difference in behavior between the requiring X and optional x: both would allow the input to be unset, i.e. blank. This change should be seen in conjunction with the doc improvement qtbase:da0af1e and the corresponding change to the QLineEdit widget, where the same input mask handling code is duplicated. This patch series also concludes the old task questioning whether text() should strip blanks even when they are valid input (answer: yes, continue to do that), and so a couple of XFAILS was removed from the autotest. [ChangeLog][QtQuick][TextInput] Inputmask X character now requires non-blank input. Task-number: QTBUG-76320 Change-Id: I606ae04259f29f748b3ce604048c6eb6f10c2ff9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | Allow custom disk cache pathsUlf Hermann2019-12-101-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-58858 Change-Id: I973a4b9f3ca618bda1943ff3fd0f8c9343b8f57d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-102-23/+24
| | |\| | | | | | | | | | | | | | | | | Change-Id: Iadbdd0fb63ca2a9e0b186343f8b730e4114cd71b
| | | * | QQuickTableView: set empty content size when table is emptyRichard Moe Gustavsen2019-12-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From before we would bail out early from the rebuild process if we detected an empty table. A result from this is that we left both contentWidth and contentHeight unchanged. This patch will set an empty content size when the table is empty. The effect will be that the user cannot flick the view around based on the old size. Fixes: QTBUG-80505 Change-Id: I3ac080476269fd5906ce79fa007eabb59b5ff4b1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | | * | QQuickTableView: ensure we release items in the old model and not the newRichard Moe Gustavsen2019-12-092-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it stood, we would wait to release loaded items until we started the rebuild process, if the old model was a DelegateModel. But at that time, the model would alread have been changed, so we would release the items by calling out to the wrong model. This patch will ensure that we always release the items immediately when syncing the model, which will also cover the case when the model is a DelegateModel. Fixes: QTBUG-80570 Change-Id: I1b06011f4795727d04d9cd8c20381f65552b8fe8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | | * | QQuickTableView: support assigning a DelegateModelRichard Moe Gustavsen2019-12-092-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally you either assign a model to TableView that already has a delegate (or don't need one), like DelegateModel or ObjectModel. Or instead you assign a QAIM model and a delegate directly. But if you assign both a delegate and an ObjectModel, TableView would be confused, and ignore the assigned model and instead create an internal wrapper model that ends up empty. This patch will ensure that we don't create a wrapper model in such cases, but instead forward the delegate to whichever model is assigned, even if it ends up as a no-op for models that don't use one. Task-number: QTBUG-80534 Change-Id: Idd220df08617c379dc7808ee1f41c862b78cc201 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | | * | tst_qquicktableview: ensure test checks for correct error messageRichard Moe Gustavsen2019-12-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 631ef67458 fixed a bug that wrote a wrong error message to the console. But there is a test that checks for that message that was also wrong (but for some reason the test passed in the CI, but it has started to fail locally). This patch will ensure that the test don't fail because we check for a wrong error message. Change-Id: I27e16b0f4aa6a0ffeb8c42f846c344436a41ad3c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | | Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Qt Forward Merge Bot2019-12-099-10/+33130
| | |\ \ \
| | | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-099-10/+33130
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/common/qv4compileddata_p.h Change-Id: I1150c8cd0161f0e22137d383013751394ae64e18
| | | | * | Stabilize tst_qquickmousearea::nestedStopAtBounds()Shawn Rutledge2019-12-082-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-78153 Change-Id: Ib8ab2ace4e43f5020059b964951ed11c0f7fc4bd Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | | * | Don't let PointerHandler steal touch grab from preventStealing MouseAreaShawn Rutledge2019-12-061-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The scenario: - mouse press: MouseArea grabs; DragHandler gets a passive grab - drag a little: DragHandler's drag threshold is exceeded - drag some more: DragHandler tries to take the exclusive grab This grab takeover succeeded before, because although MA has keepMouseGrab(), the event being delivered is a touch event, and MA does not have keepTouchGrab(). If this happens while QQuickWindowPrivate::touchMouseId is the same touchpoint that the DragHandler is trying to grab, it should not succeed, because we honor the keepMouseGrab() flag. I.e. keepMouseGrab() implies keepTouchGrab() whenever the touchpoint under consideration is currently the touch-mouse. On the other hand, if a DragHandler is used on some item inside a Flickable: on press, the Flickable grabs right away (it has a bad case of FOMO), but the DragHandler just gets a passive grab. When the drag threshold is exceeded, DragHandler must be able to steal the grab from Flickable, because Flickable was just being too aggressive. So now we have the rule that if the Item it wants to steal the grab from is a parent of the type that filters all events, it's OK to ignore the keepMouseGrab() flag and steal anyway (as it did before this patch). Fixes: QTBUG-79163 Change-Id: I2b3f175bea867cb737357857657653b0a7b83995 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | | | * | TapHandler: don't reject stationary touchpointsShawn Rutledge2019-12-062-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Multiple TapHandlers must be able to react to multiple touchpoints. Often when multiple touchpoints are in contact, some of them will be stationary. In that case TapHandler should not give up its active state, which is the result of returning false from wantsEventPoint(). This partially reverts commit dcc7367997e7241918cdf0c702c7bb8325eb1ad4. Fixes: QTBUG-76954 Change-Id: I836baf771f09d48be8d032472b0c3143e8f7f723 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | | | * | QQuickItemView: Emit correct change signal on model resetFabian Kosmale2019-12-052-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the variable was manually set to -1 beforehand, we would never emit the change signal, leaving bindings stale. However, simply removing the assignment would lead to not triggering the signal when currentIndex was 0. So now we set it to -2, which cannot happen in any other place. Note that QTBUG-64998 was already mostly fixed due to earlier changes fixing the currentItem part, only currentIndex was still broken Fixes: QTBUG-68232 Fixes: QTBUG-64998 Fixes: QTBUG-63422 Change-Id: I885e06f1e258e67c3368d017bf79bff760440863 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | | | * | Compiler: Support >32k stack slotsUlf Hermann2019-12-052-0/+33078
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the code generator would truncate the stack slots when writing the compiled function, as that one only had a 16bit field for them. Also, add a debug-mode check for stack overflows to the interpreter. Unfortunately, as it triggers a stack overflow, the test will not reliably fail without this change. Fixes: QTBUG-80511 Change-Id: I3019bb2de657ae4c3e1040db798a83533f854bff Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | * | | | Implement TypedArray.fromVille Voutilainen2019-12-091-32/+0
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-80030 Change-Id: I2d4c30257f543d9d7013aaf394a2a0874eacb266 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | | src/qmlworkerscript: Add ready property to WorkerScriptMaximilian Goldstein2019-12-062-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously it was impossible to determine whether a WorkerScript has been fully initialized. This commit introduces a ready property that allows outside Components to determine whether it is safe to send signals. Fixes: QTBUG-80413 Change-Id: I2a1892b5e759e317de791e71d79fbb0cbd320dd3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | qml/parser: Implement nullish coalescingMaximilian Goldstein2019-12-0510-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements the '??' operator as specified in https://github.com/tc39/proposal-nullish-coalescing. Also adds a few tests. Task-number: QTBUG-77926 Change-Id: I3993450c192d11bf1ade0662d945c1553b4c6976 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | * | | Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Qt Forward Merge Bot2019-12-059-2/+452
| | |\ \ \
| | | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-059-2/+452
| | | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicklistview/tst_qquicklistview.cpp tests/auto/quick/qquicktableview/tst_qquicktableview.cpp Change-Id: Ib46bc1c717cf524eea2fb3d876810c8d55747c91
| | | | * | Fix ObjectModel item not being rendered when moved between modelsMitch Curtis2019-12-042-0/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When moving an item from ObjectModel A to ObjectModel B, polishes are scheduled for the respective ListViews in order: the ListView for A first, and then the ListView for B. However, when it comes time to do the actual polishing via updatePolish(), the list of items is traversed backwards. This means that the following calls var item = objectModelA.get(0) objectModelA.remove(0, 1) objectModelB.insert(0, item) will result in updatePolish() being called for ListView B first, and then ListView A. As a result of this, setCulled(false) will be called by ListView B (since the item is now visible within it), followed by ListView A calling setCulled(true) (since the item is now no longer in it). As there is no way for these models to know about each other (and it's not feasible to store refcounts in QQuickItemPrivate::extraData, since ObjectModel is in QtQml.Models, which can't know about QtQuick), this patch makes ListView check if the item is parented to its contentItem before culling it. This prevents it from hiding items which are no longer shown in its view. Change-Id: If50614ebc269fae875195bbc63c0c04dab237775 Fixes: QTBUG-67986 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | | | * | Fix incorrect behavior of PathView with ungrabMouse()Shin-ichi Okada2019-12-042-0/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the grabbed Item is released and then grabbed again, if ungrabMouse () is called, the animation stops. In order to avoid this, when ungrabMouse () is called, if offset is different, it is modified to animate. Task-number: QTBUG-79592 Change-Id: I61cbd4dad90643722f12480f0dab3859ce116af8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | | | * | QQuickTableView: Clear items before deleting the modelUlf Hermann2019-12-043-0/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-71374 Change-Id: I534b7612268bb9407844961267865f490d7ff7b2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | | | * | tst_qquicktableview: fix warning about missing JS functionRichard Moe Gustavsen2019-12-043-2/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 35fdf3a7b7 added a binding to a function in one of the QML files used for testing (plaintableview.qml). The problem is that this file is also used from other places where we wrap a QSharedPointer that points to the model inside a QVariant. And when assigning that variant to a TableView, the QML binding will see the QSharedPointer, and not the model it points to. And hence complain that the model doesn't have the API that is exported from the model. The easy fix is to just create a new QML file for the new test added, that has the binding, but assigns a QVariant that wraps the model directly without usign a QSharedPointer. Change-Id: Ic2b77426c2d700479a9b5f4007384661e2ca0801 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | | | Locale: expose NumberOptions to QMLFabian Kosmale2019-12-051-0/+30
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we want to specify how DoubleValidator and fromLocaleString handle number separators, we need to expose NumberOptions to QML. The referenced bug report is still unsolved, as we we still lack a method to change DoubleValidator's behavior and NumberOptions does not have a value to ignore occurrences of separators at arbitray places. Task-number: QTBUG-75110 Change-Id: I81f48439114cad12e0e977bab09b0aa4e240fbab Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | Don't allow dragging a ListView through a floating header or footerShawn Rutledge2019-12-041-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the header or footer positioning is Overlay or PullBack, the list delegates appear to scroll underneath it. The header or footer can contain interactive content. If a mouse or touch press happens to "fall through" that, it should not be possible to drag the ListView contents from there. [ChangeLog][QtQuick][ListView] ListView no longer allows the user to press on an Overlay or PullBack header or footer and start scrolling, but only on the content delegates. Fixes: QTBUG-74046 Change-Id: I4d06c789286be2691d098aeebb10a57b2a335744 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | QQuickListView: implement support for reusing itemsRichard Moe Gustavsen2019-12-048-1/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch will implement delegate item recycling in ListView. The API will be the same as used in TableView, except that it will be off by default since the behavior of a delegate that is reused is not compatible with legacy applications which were not written with this in mind. Most importantly: - Component.onCompleted will only be called on a delegate the first time it's created, and never when it's reused. - Any user-declared properties in the delegate (that is, not model roles, index, etc) will not be cleared or updated when an item is reused. The application must do this manually upon receiving the pooled or reused signal in the item. [ChangeLog][ListView] ListView now has support for reusing delegate items. This can be switched on by setting the reuseItems property of ListView to true. Task-number: QTBUG-80507 Change-Id: I68cc8300b050e4a1f89feebb1d31a2fd9189c793 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-047-1/+318
| | |\| | | | | | | | | | | | | | | | | Change-Id: I4e4464d785c8c4a0d06ffaaff3e1cdd94e1c179a
| | | * | QQuickItemView: Set moveReason to other on model changeFabian Kosmale2019-12-031-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements Michael Brasser's suggestion in the bug report. As there do not seem to be other bug reports related to the fixupPosition change, this might already be enough. Fixes: QTBUG-66163 Change-Id: Iee45621ff7081b280626f4a81dab9bd36a7ea6b7 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * | Do not emit inputMaskChanged when setting the same input maskJan Arve Sæther2019-12-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you did not specify a blank character (e.g. "; " as suffix) it would internally add that suffix to the property, resulting in that the property itself actually got a "; " suffix even when not specified. So when setting the same input mask again, it wouldn't match the existing inputMask property, and it would emit inputMaskChanged again. Change-Id: Ia47d63d56c640b4be9d6d0a704ddfaff01befbdb Fixes: QTBUG-80190 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | | * | MouseArea: react to touch ungrabShawn Rutledge2019-12-024-0/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an event handler (such as DragHandler) takes the exclusive grab of a touchpoint that MouseArea had already grabbed as a synth-mouse, it should react in the same way as if its grab of the actual mouse was stolen: release the pressed state, etc. Fixes: QTBUG-77624 Change-Id: I51f4fb253f7d0377be421c23e617942507616e72 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | | * | Facilitate testing RHI rendering in the lancelot testEirik Aavitsland2019-11-291-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synthesize a "GraphicsStack" client attribute from the various environment variables that determine the rendering backend. This allows the baseline server to differentiate the baselines from the different rendering stacks. Manual comparison between them can then be done using the -compareto command line option. Change-Id: Iea13e130baa97462461ccf8b769d57ea74567c51 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * | | QQmlDelegateModel: Read values from the correct objectUlf Hermann2019-12-032-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a proxyObject, we need to use that one for reading proxy values. Otherwise the read operation will crash. Fixes: QTBUG-80420 Change-Id: I88cd5499802bff1aea2e43da9ab61d6565ab7ede Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-292-0/+67
| | |\| | | | | | | | | | | | | | | | | Change-Id: Ic754916ddc223c6ce20f0298eec02a3513fc0222
| | | * | Fix console logging from lancelot testEirik Aavitsland2019-11-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stderr output of the qmlscenegrabber subprocess was not forwarded. Change-Id: I38d304ad2570187de0552ad325149f66aacf3ac3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | | * | MultiPointTouchArea: stop ignoring Qt-synthesized mouse eventsShawn Rutledge2019-11-261-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We ignored them because we assume that if a touch event is sent first, the MultiPointTouchArea will handle it; and then if a synth-mouse event is sent afterwards for some reason, it's irrelevant to MPTA. However: 1) A synth-mouse event should not actually be sent, because MPTA accepts the touch event. 2) If Flickable is used with pressDelay set, Flickable will send the delayed press in the form of a mouse event (it does not know how to replay a touch event at all). So if MPTA is used in a ListView delegate for example, it's necessary for MPTA to react to a synth-mouse event during replay. In both the press delay replay and QTabletEvent scenarios, the mouse event has source() set to MouseEventSynthesizedByQt, so MPTA needs to handle those events. After a synth-mouse event during replay, MPTA can still receive an actual touch release, which thoroughly confuses its pre-existing logic. In that case it helps to check whether the touchpoint ID is the same as QQuickWindowPrivate::touchMouseId, handle the release of that point, and also release the internal synthetic _mouseQpaTouchPoint which was remembered from the mouse press. Fixes: QTBUG-75750 Fixes: QTBUG-78818 Change-Id: I8149f8b05f00677eb07a2f09b725b1db5f95b122 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | * | | Add (and ignore for now) type assertions to QMLUlf Hermann2019-11-271-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You can write "(something as Foo)" to give hints to any tools that you expect something to be a Foo at this place. This is not a conversion and ignored at runtime for now. Eventually the compiler will verify that the type assertions are plausible and error out if they aren't. Change-Id: I21c8705bb387f7ab2cbc153293dbf477663afe87 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| | * | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-264-0/+124
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qmldirparser/qqmldirparser.cpp src/qml/qmldirparser/qqmldirparser_p.h Change-Id: Ia68a8d4f345e6e456eebc3f215fc90d3819ddd70