aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* Unify and fix number to string conversion with radixUlf Hermann2019-02-251-0/+16
| | | | | | | | | | | Previously, the loop that generated the string could fail to terminate with certain numbers as input. Also, the algorithm was duplicated in two places. Change-Id: Ie2075148d931e7cfcedb5bcd23af61e2e8afc232 Fixes: QTBUG-73999 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* V4: Rotate loop in ArrayPattern and eliminate "done" labelErik Verbruggen2019-02-251-0/+9
| | | | | | | | | | This prevents jumping over the resetting of the unwind handler when an exception occurs. (cherry-picked from commit 0282b89ec672e25a465a8e51bc74c7fd58a624b1) Fixes: QTBUG-73985 Change-Id: I4a4da815f54c13980d239e0492f9b013991cfbd5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update the cursor when the window is enteredAndy Shaw2019-02-251-0/+79
| | | | | | | | | | | | When a window is entered, due to another window being hidden, then it is possible that the item under the mouse has a different cursor than the one previously set for that window. Since there will not be a mouse move at this point yet, then we should update the cursor right away. Change-Id: I2ef3c72617ae5c995a4daf7daef1ba3311fdcc12 Fixes: QTBUG-41045 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Merge remote-tracking branch 'origin/5.12.2' into 5.12Qt Forward Merge Bot2019-02-222-30/+26
|\ | | | | | | Change-Id: If1c718780a48a3e818eb5a0c0907a31acb6c694d
| * Only warn about incompatible parameter types passed from QMLUlf Hermann2019-02-212-30/+26
| | | | | | | | | | | | | | | | | | Throwing a TypeError is too drastic. We need to properly deprecate this pattern before we actually enforce the compatibility. Fixes: QTBUG-73943 Change-Id: I00313ad7aed4021a7368fd014e2bfc6443b177e3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QML: Pass type minor version when creating property dataUlf Hermann2019-02-213-0/+69
| | | | | | | | | | | | | | | | | | Depending on the type minor version recursive properties should be available or not. Check for that when resolving grouped properties. Fixes: QTBUG-33179 Change-Id: Id8f62befdc4a29d879710499e19d3d289bd18775 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Blacklist tests in tst_FlickableInteropUlf Hermann2019-02-211-0/+4
| | | | | | | | | | | | | | | | | | touchAndDragHandlerOnFlickable and touchDragFlickableBehindSlider are unstable. Task-number: QTBUG-73983 Change-Id: I220869a0a6e7beb69d7273b0edc66ac067ebcd38 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QQmlDelegateModel: guard new row/column properties with revision 12Richard Moe Gustavsen2019-02-212-0/+99
| | | | | | | | | | | | | | | | | | | | Tag the new 'row' and 'column' properties with revision 12. This will make sure that they cannot be accessed by the delegate unless the QQmlAdaptorModel has the correct minorVersion set. Fixes: QTBUG-70031 Change-Id: I49e67c37ab5b7925c7bca313bbb99f04d1387cc4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | QQmlPropertyCache: support setting an explicit metaObject revisionRichard Moe Gustavsen2019-02-211-0/+21
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating a QQmlPropertyCache for a QMetaObject, there were currently no way to specify which revision to use. Normally this is not needed, since when creating property caches for types declared in QML, the correct revision would be filled in later, based on the import version found in the QML file. But sometimes we need to create a QQmlPropertyCache for a QMetaObject created in C++, that has no associated QML file and import version. And if that meta object has revisioned properties, we need to specify which revision of the meta object the cache should represent. Otherwise, the revision would just be 0, which means that revisoned properties would not be found by the V4 runtime later. As an example, QQmlAdaptorModel has a set of classes that wraps various models (QAIM, arrays, etc). When a new delegate item is created by a view, an instance of a model class will be created as well (from C++). This instance will be set as context object for the delegate item, enabling properties such as index, row, column and model roles. But since row and column should a revision (currently they don't), we need to be able to specify that the property cache should have a revision that matches the import version of the view. That way, we can ensure that they don't shadow any existing row and column properties that might exist in the application from before, and as such, cause regressions. This patch will add an extra argument to the constructor that lets you specify which revision of the QMetaObject to use. Task-number: QTBUG-70031 Change-Id: I1c245a0c8b6f071e35865966fedc97f2839cd2f3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Avoid unnecessary re-generation qml cache files in some circumstancesUlf Hermann2019-02-182-17/+46
| | | | | | | | | | | | The map of name IDs to resolved types so far is copied several times during compilation and different compile passes see different copies of it. Compile passes may add things to the map, and if they do that on copies that are inaccessible to other code, we get nondeterministic results. Furthermore all the copies and pointers are confusing and inefficient. Fixes: QTBUG-69340 Change-Id: I43ad3cbeeec34f90e05570eddc901fe8aa64c709 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QML: Don't crash the parser on certain kinds of bad inputUlf Hermann2019-02-181-0/+10
| | | | | | Fixes: QTBUG-72734 Change-Id: I92146ec517c6a26a67e13830618e137f2a3021c2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Check parameter types when invoking C++ functions from QMLUlf Hermann2019-02-172-26/+30
| | | | | | | | | | | | | | | We now check if the given parameters can be converted to the expected arguments of the function being invoked and throw a type error if not. Previously we would still invoke the method with random parameters. [ChangeLog][QtQml][Important Behavior Changes] The parameters passed to C++ functions from QML are now checked for compatibility with the expected arguments. If they cannot be converted, a type error is thrown in JavaScript and the function is not invoked. Fixes: QTBUG-73405 Change-Id: If16089510d314bb7cdb7d4db86478114c61281a8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* PropertCache: Don't pass Q_GADGET value types as integersUlf Hermann2019-02-142-0/+51
| | | | | | | | We need to check for the IsGadget flag there. Fixes: QTBUG-73734 Change-Id: Ic4afd4215e6ed346bc40794d85397f0f262715e2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* DelegateModel: Zero foreign context objects when they are deletedUlf Hermann2019-02-142-0/+133
| | | | | | | | | If we keep plain pointers to objects we don't own, we need to zero them when something else deletes them. Fixes: QTBUG-73733 Change-Id: Ib4f3e144f10f70ab6cf44af4ffa62725470d3972 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Canvas: Handle switching between object and string based colorsAndy Shaw2019-02-141-0/+35
| | | | | | | | | | | | | When switching between the two it should respect whatever the color is regardless of whether it is a color value or a string based color. This also accounts for "invalid" colors as this should set the stroke-style to be #000000 to be inline with the default stroke-style indicated in the specification. Change-Id: I00bee6c9a85787762271882838510b4187798ee0 Fixes: QTBUG-42155 Fixes: QTBUG-52959 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Make test more robust in case we have interleaved update eventsJan Arve Saether2019-02-131-6/+10
| | | | | | | | | This could for instance happen if the window gets exposed under the cursor, and it sends a mouse move event that might interleave the press and release events, causing the eventCount variable to jump to 3. Change-Id: Icce59b2aa1a937a990baa83f503907633003e2bb Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Connect quit() and exit() signals with queued connectionsMichal Policht2019-02-137-13/+65
| | | | | | | | | | | | | | | | | | Class QQmlApplicationEngine connects QQmlApplicationEngine::quit() signal to QCoreApplication::quit() and QQmlApplicationEngine::exit() signal to QCoreApplication::exit(), but it does so with AutoConnection. This causes in some circumstances problems, which are described in Qt documentation (see QCoreApplication::exit()). This change modifies type of connections to queued connections. [ChangeLog][QtQml][QQmlApplicationEngine] QQmlApplicationEngine connects quit() and exit() signals with queued connections to avoid problems with AutoConnection, when connecting to QCoreApplication slots. Task-number: QTBUG-73649 Change-Id: Ib27738b5af2f879efee8862b1ca01613a2e8dc4e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Don't optimize global lookups if fast QML lookups are disabledUlf Hermann2019-02-132-0/+38
| | | | | | | | | | | If fast QML lookups are disabled, we generally want to look up by string. If the name then happens to be a member of the global JavaScript object, we still don't want to directly access that, as the name could have been overridden in a deeper context. Fixes: QTBUG-73750 Change-Id: Id16110969123d91501064ba46bfad4c2a39e4650 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix background color of some QML lancelot test scenesEirik Aavitsland2019-02-1214-14/+14
| | | | | | | | Avoid red since that is also used for marking visual diffs in the lancelot results. Replace with a great color. Change-Id: I1da4d1b6dc3cacbd3b5b2574720fcd3176f49a52 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Move initView() to tests/auto/quick/sharedJan Arve Sæther2019-02-113-67/+73
| | | | | | | | | | | | According to our "Coin - Flaky Tests" dashboard on our grafana, initView() in tst_qquickmousearea seems to have very few flakiness issues in actually exposing a QQuickView. It is therefore a good idea to share this implementation so that it can be used by other tests too. Change-Id: Ie83cbf7d00fa02bdd4699757471fa180945851e3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Un-blacklist tst_qquickanimationsShawn Rutledge2019-02-101-4/+0
| | | | | | | | macOS 10.9 is no longer supported. Fixes: QTBUG-45466 Change-Id: I44ce5e6c7d941cf21d937fb0cfe54ee418d28c4e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Un-blacklist tst_qquickflickable::reboundShawn Rutledge2019-02-101-3/+0
| | | | | | Fixes: QTBUG-26696 Change-Id: I32cebc9e0b63b55113f24fd40c06e7017b763aaf Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Remove blacklisting of several tests that are passingShawn Rutledge2019-02-107-19/+0
| | | | | | | | | | | | | ...based on statistics visible in Grafana. Task-number: QTBUG-41895 Task-number: QTBUG-38209 Task-number: QTBUG-65978 Task-number: QTBUG-36804 Task-number: QTBUG-45466 Task-number: QTBUG-29062 Change-Id: If62d2413ede234d33b411e0ecb4f93ec6e0f8062 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Try to fix flakiness in flickableinterop testUlf Hermann2019-02-071-1/+1
| | | | | | | | The usual problem is that Flickable doesn't instantly jump to the expected position but moves there after a delay. Change-Id: Iafc9dd493b97629377e7f7c60ae7adde13427bae Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Try to stabilize tst_qquickwindow::defaultSurfaceFormatUlf Hermann2019-02-061-2/+4
| | | | | | | | Apparently the OpenGL context is not guaranteed to be available right after showing the window. Wait for it to appear. Change-Id: Ie3acdb857d4e3a8c6c148c57916a49a58c93a835 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix bug where QQMPH kept an exclusive grab when no buttons were pressedJan Arve Sæther2019-02-062-0/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This happened if you moved the mouse while doing a multitouch operation. More specifically this caused the bug: 1. Open qtdeclarative/tests/manual/pointer/map.qml 2. Rotate the map with two fingers (Do not release fingers). 3. Move mouse (no buttons pressed). 4. Release both fingers. 5. Move mouse again (error: the draghandler has a grab and thus the map is dragged even if no buttons are down). This happened because if you moved the mouse while having two fingers down, Windows would generate a *mouse*move* event with Left button or Right button pressed (which wasn't the case on the physical device but it's probably because of a bug in how mouse events are synthesized from touch on Windows). This caused the QQuickMultiPointHandler to do a passive grab. Then, when releasing the fingers it would not send a mouse release event (just plain touch release events), so the QQuickMultiPointHandler would keep the passive grab it had. All subsequent mouse move events would then be dispatched to the QQuickMultiPointHandler where it would assume that the button was pressed until it got a release event (but button was never pressed so that wouldn't happen). Eventually it would perform an exclusive grab, and dragging was initiated. Change-Id: I42b3133c5fde93c7f92f1cb28705156a69f9ad1c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Improve error messageRainer Keller2019-02-042-2/+2
| | | | | | | Show more datails about what actually went wrong. Change-Id: I418a4d1f433bd4d440fc34e9a4932a9ea010b174 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* TapHander: do not "want" an eventPoint that is outside parent boundsShawn Rutledge2019-01-301-3/+7
| | | | | | | | | | | | | | | | | So far it was checking parentContains() on press, release, or when the gesturePolicy is WithinBounds, but not for each movement when the policy is DragThreshold (the default). This might explain most of the remaining warning noise: "pointId is missing from current event, but was neither canceled nor released" because it was possible for TapHandler to remember wanting a point that it should not have wanted, but without taking any kind of grab, and then complaining when that point was no longer present. Since it did not grab, it did not get the release, unless the release was part of an event containing a point that it DID grab. Fixes: QTBUG-71887 Change-Id: I26ce62279574cf6b0150f24e486f224a604ac6b1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Correctly scope unwind handlers for try blocksLars Knoll2019-01-301-3/+44
| | | | | | | | | | | | | Make sure the unwind handler is always reset when leaving the try block. This exposes a couple of failures in the ECMAScript test suite that were before passing by pure luck. Task-number: QTBUG-72858 Change-Id: I014b1e37c2beff136ecd53a665a2f10933f7e12c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* PinchHandler: Avoid unwanted translations when axes are disabledShawn Rutledge2019-01-282-1/+89
| | | | | | Fixes: QTBUG-72822 Change-Id: I2773ba14fcb24a47fe2ec04860b4aa305a051453 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Bring behavior of String.replace() in line with other enginesLars Knoll2019-01-251-0/+59
| | | | | | | | | | | | | | | | "x".replace("x", "$1") gives "$1" in both JSC and V8, as there are no captures that could be used as a replacement for $1. Implement the same behavior as it's the most logical thing to do (even though it's undefined according to the spec). Two digit captures ($nm) work in a way that they get applied if $nm captures exist. If there are less than nm but more than n captures available $n is replaced by the n'th capture and m is copied over verbatim. Change-Id: I8b5f576f2c42c8334859ab7854dcdf07104dd35b Fixes: QTBUG-73152 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Canvas: Guard context pointer against external deletionUlf Hermann2019-01-232-1/+88
| | | | | | | | | You cannot keep the context when reparenting the canvas item. Use a QPointer prevent dangling. Task-number: QTBUG-73113 Change-Id: Ie7021c6f0bb0d09923eb358dc7e51d6727e74a7a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* MemoryManager: Only clear weak values onceUlf Hermann2019-01-234-3/+90
| | | | | | | | | | | | We want to keep the weak values alive while the destruction callbacks are running, so that they can still access them. We set them to undefined later anyway because we expect the destruction callbacks to mess with the values. Therefore there is no point in also setting them in between. Fixes: QTBUG-72137 Change-Id: I83f70230f5b4ad2761c74770f975b14a5ca71f18 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QQmlNotifier: Always keep the isNotifying flag when updating senderPtrUlf Hermann2019-01-232-0/+41
| | | | | | | | | | | When the sender gets deleted we still want to retain the flag that tells us that the notifier is currently active. Otherwise we can miss the error message about synchronously deleting objects while signal handlers are in progress. Task-number: QTBUG-73013 Change-Id: I8abba9b492327c15963d1875841c6822f345a89e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add handlers declared as Flickable children to its contentItemShawn Rutledge2019-01-229-0/+730
| | | | | | | | | | | | | | | | | | | | | | | | | | QQuickItemPrivate::data_append() was not invoked when any kind of Pointer Handler was directly declared in a Flickable (or subclass) because QQuickFlickable redefines the default property to be its own flickableData property. So we need to repeat the special handling in QQuickFlickablePrivate::data_append() too. The handler must be added to the private->extra->pointerHandlers vector, so that QQuickItemPrivate::handlePointerEvent() will attempt to deliver events to those handlers. TapHandler seems OK (especially with its default gesturePolicy so that it does not do an exclusive grab). PointHandler seems OK. DragHandler competes with Flickable for the exclusive grab. pressDelay can help; or set acceptedDevices: PointerDevice.Mouse to allow the mouse to drag but not flick, and the touchscreen to flick but not drag. Fixes: QTBUG-71918 Fixes: QTBUG-73035 Change-Id: Icb97ed5230abe0cb6ec0230b5b5759a0528df7e8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Skip shadersource-dynamic-shadersource test on XCB platformUlf Hermann2019-01-222-1/+8
| | | | | | | | | | The test crashes, which is counted as failure, even if the test is blacklisted. It also doesn't only crash on Ubuntu 18.04 but also on Redhat 7.4 and Ubuntu 16.04. Just blacklist it for any linux for now. Task-number: QTBUG-69893 Change-Id: Icc4c41b5d6fa339075b569fcd53220692e882d23 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.12.1' into 5.12Qt Forward Merge Bot2019-01-2113-1/+58685
|\ | | | | | | Change-Id: I1e0bbc35807bd0f7f96694539d2fbec0f83ddb16
| * When matching RegExps catch JIT failuresUlf Hermann2019-01-093-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | The Yarr JIT can generate code that fails to evaluate the RegExp at runtime. In that case we need to fall back to the interpreter. Also, don't needlessly cast the unsigned return value of RegExp::match to signed int before range-checking it. And fix some typos in the comments for the disassembler dumps. Fixes: QTBUG-72879 Change-Id: Ic8f80c076d6461d714816a9f66e1cac1d9b0c7a8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge 5.12 into 5.12.1Kari Oikarinen2019-01-0818-125/+240
| |\ | | | | | | | | | Change-Id: Ic746fbce93430867e2eda4bc7155d34e20a4aa2b
| * | Add binary compatibility files for 5.12 for QtDeclarativeMilla Pohjanheimo2018-12-204-0/+58401
| | | | | | | | | | | | | | | | | | | | | Binary compatibility files added. Change-Id: I98e3a26f0f5883217c05dfe35e723bee4f1521f8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | CMake: Don't handle empty resource filesAndy Shaw2018-12-172-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Qml] Empty resource files will not be passed to Qt Quick Compiler to be handled when using CMake. Change-Id: I1513d29b70d8a4b08a2947f4a97fbd525c5ace8f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | TapHandler: clean up when wantsEventPoint returns falseShawn Rutledge2018-12-132-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already emitted grabCanceled() to inform QML callbacks, but we didn't call reset(). It seems more proper to do everything that would normally be done when grab is canceled. TapHandler should not give up its passive grab yet though, because that prevents delivery to any parent Flickable that might be filtering events. A parent Flickable should be able to start flicking after the drag threshold is exceeded (it happens to be exactly when TapHandler gives up). Fixes: QTBUG-71466 Fixes: QTBUG-71970 Change-Id: Ibba1b0de92cfd88547eeb44edb095d019de76a94 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | PointHandler: distribute simultaneous touch presses properlyShawn Rutledge2018-12-132-0/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If multiple touchpoints are pressed simultaneously, each point can be grabbed by one PointHandler instance. Each PointHandler instance cannot grab more than one point, nor grab a point that is already chosen by another PointHandler. This was always the intention, but got broken (perhaps by 3523b676382db4aa39adeb9126d8bb2185e84403), and there was no test coverage of this case until now. Fixes: QTBUG-71431 Change-Id: I6d7614eb4767c677d929291f917cf62d9c03bd93 Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
* | | Annotate stack traces when frames are elided through tail callsErik Verbruggen2019-01-151-0/+16
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-72407 Change-Id: I98b96852309fc783a945797185f666196513d24b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | StorageModel manual test: use DelegateChoices to show data graphicallyShawn Rutledge2019-01-153-32/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This demonstrates that DelegateChooser and DelegateChoice are working with TableView. In this use case, DelegateChooser uses a role from the model to decide which delegate type to instantiate. So we need the model to provide a type role that it can switch on. Conveniently, by using the Q_ENUM registration of the Type enum, it automatically becomes possible to match against the stringified versions of those enum values in the DelegateChoice.roleValue property. To demonstrate a set of roles which would work for almost any kind of numeric data, we choose to have a Value role for the current value, corresponding to the width of the bar or the numerator of the ratio; and ValueMax for the maximum possible value, corresponding to the total width of the bar graph, or the denominator of the ratio. ValueDisplay and ValueMaxDisplay are roles which provide string-formatted versions of those for labeling purposes. Maybe in the future we could consider adding those (plus ValueMin and ValueMinDisplay) to the ItemDataRole enum; because almost any kind of data model could need to provide numeric data, but for some reason we have only made it easy to provide strings (DisplayRole) and booleans (CheckStateRole). Likewise some sort of type role could be standardized at the same time. Free / used space is graphically shown as a bar graph. QStorageInfo provides bytesFree() but not bytesUsed(), but it's more conventional to show a bar which grows wider as more space is used, so we reverse it visually by showing a red background with the bytesFree bar anchored to the right. Thus the width of the red part showing through is proportional to bytes used. The three flags isReady, isReadOnly and isValid are shown with simulated checkboxes. This manual test is now on its way to becoming an example of how to use row, column and role effectively together. It's not enough to say that TableView is only for spreadsheet-like views, displaying only text in each cell. To display more than text, we can do the same thing that we have done in the past with models designed for display with ListView: use the role, so that data(index, role) gets called multiple times for each cell, to get the values that each delegate type needs to use to render itself. Change-Id: I1060eacc2b7d25f420411828258e7d94ee0bdd0b Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | QQmlMetaType: Erase attached properties in dtorUlf Hermann2019-01-151-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, make it more obvious that the attachedPropertyIds are a static member of QQmlTypePrivate. Fixes: QTBUG-72972 Change-Id: If0a28e034dd46d7127993ed15aed11c7641d580e Reviewed-by: Harald Hvaal <harald.hvaal@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Stabilize tst_QQuickPathView::package()Friedemann Kleint2019-01-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add QQUICK_VERIFY_POLISH. Fixes: QTBUG-73007 Change-Id: I08d90058770ef496469b917892104c751b5cf9c1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | tst_qquickapplication: Don't assume app activation is tied to window activationTor Arne Vestbø2019-01-141-25/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Follows same approach as 47f6d256ed in tst_qquickapplication::state(). Change-Id: Ibecdab3f874fc9e75b38ba2ccaf3776bd46c77e8 Fixes: QTBUG-72953 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Avoid crash in property requirements testUlf Hermann2019-01-081-1/+3
| |/ |/| | | | | | | | | | | | | | | | | Pure QML types do not have a meta object hierarchy associated with them. The test is only supposed to test C++ types, though. We can ignore the types without meta objects. Change-Id: I2a40bc0023f6d335c4dbdbc04818da60f47d8787 Fixes: QTBUG-72637 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Tests: Don't capture stack value by referenceUlf Hermann2019-01-031-7/+7
| | | | | | | | | | | | | | | | | | We can actually not capture d at all there, as some of the items get deleted before the root object is deleted. Therefore, we need to iterate the children again on receiving the destroyed() signal. Change-Id: Iab7ebc3c731438a21b243284de7515530232828f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>