aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * Add test for dynamic anchors to parents in PropertyChangesUlf Hermann2019-03-203-0/+41
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-71042 Change-Id: I4d0927b0d6c9a4ccaaddfbfd6dd2a7841fbbc845 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Accelerate access to id objects in lookupsSimon Hausmann2019-03-203-2/+39
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-69898 Change-Id: Ifbd9b3bf8d4b0c82b4c3933912e61eea8e0bb987 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Accelerate access to singletons and imported scriptsSimon Hausmann2019-03-203-3/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use a dedicated lookup type to provide super fast access to engine wide singleton objects as well as scripts Task-number: QTBUG-69898 Change-Id: Ie430f48f6576a9171018ef18742dcf6b2adb4310 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * V4: Don't mark InternalClass::parent when garbage collectingUlf Hermann2019-03-202-5/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parent pointer is only kept so that we can update the parent's transitions when removing a child. There is no need to keep the parents alive for the children. Fixes: QTBUG-58559 Change-Id: Ia28183966bde6d478ca030fe11195489925dfc13 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Remove dead compile time QML context/scope property and id object codeSimon Hausmann2019-03-2025-1165/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After enabling lookups in QML files, we can remove all the code that tries to deal with (type) compile time detection of access to id objects and properties of the scope/context object. This also allows removing quite a bit of run-time code paths and even byte code instructions. Task-number: QTBUG-69898 Change-Id: I7b26d7983393594a3ef56466d3e633f1822b76f4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Implement dummy QML lookups for "global" variablesSimon Hausmann2019-03-2028-54/+235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When resolving names in the context of QML bindings, we now direct runtime access to QQmlContextWrapper::resolveQmlPropertyLookupGetter. At the moment this does basically the same as Runtime::method_loadName, which we called earlier. However this now provides the opportunity to optimize lookups in the QML context in a central place. When performing a call on a scope or context object property, we also did not use a CallName() instruction - which would have gotten the thisObject wrong - but instead we use a dedicated CallScopeObjectProperty and CallContextObjectProperty instruction. These rely on identifying these properties at compile time, which goes away with lookups (and also doesn't work when using ahead-of-time compilation). Therefore the qml context property lookup is using a getPropertyAndBase style signature and Runtime::method_callQmlContextPropertyLookup uses that. For the tests to pass, some error expectations need adjusting. In particular the compile-time detection of write attempts to id objects is now delayed to the run-time. The old code path is still there and will be removed separately in the next commit (as it is massive). Task-number: QTBUG-69898 Change-Id: Iad1ff93d3758c4db984a7c2d003beee21ed2275c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Blacklist tst_QQuickListView::enforceRange_withoutHighlight on opensuseUlf Hermann2019-03-201-0/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-74544 Change-Id: I0a8c54d2a02d959edacd82abcee4553222d575d9 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Raise timeout in QQmlPreview testUlf Hermann2019-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | Apparently on some platforms this can time out. Change-Id: I30cd274ff3127319c558b473b6ec7e7f5bc79c38 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Blacklist AnimatedImage::test_crashRaceCondition_replyFinished()Ulf Hermann2019-03-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This is unstable on macOS 10.13. Task-number: QTBUG-74525 Change-Id: I8c04b4f0b4c560d1805982a605f994e0f1f1c87d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Blacklist tst_TouchMouse::buttonOnFlickable() on mingwUlf Hermann2019-03-201-0/+4
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-74517 Change-Id: I3e0a90a264f8f686bba89e6b8dc4ebcf05418f77 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Relax tst_QQuickGridView::contentHeightWithDelayRemoveUlf Hermann2019-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently we cannot rely on the content height change to immediately take effect. Change-Id: I8b4bf7b7d0b72da84228c7a3f1460b42c97e0330 Fixes: QTBUG-74518 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Doc: Clarify section about qmlRegisterInterface()Ulf Hermann2019-03-201-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | There is very little you can do with things registered as interfaces. Change-Id: I5e4dcf8529c2d7c8012db3fa1dcfc23563cc2cba Fixes: QTBUG-74318 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Create import directory from intercepted URL, not orignial oneUlf Hermann2019-03-205-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | If the qmldir URL got intercepted, we should use the intercepted URL to get to the contents to be loaded. Fixes: QTBUG-73843 Change-Id: I51715575e767ed429a8237517f47196677409fe0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Enable lookups in QMLSimon Hausmann2019-03-1910-76/+311
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main feature that needs to be implemented in order to enable lookups in QML files is to respect that the QObject wrapper has its own storage layer (meta-object properties). Lookups need to be able to index those when the base is a QObject. This is done by caching the property data and guarding the validity by comparing property cache pointers. The same lookup logic is also implemented for value type wrappers. OVerall there's more that can be done with lookups in meta-objects, for constant properties for example. For "global" lookups we have a safeguard in place that generates a LoadName instruction for property access that should end up in the qml context wrapper. So no changes are needed here at first, but the lookup in the QML context can be optimized in the future. The way of storing the property cache in the lookup itself trades ugliness on destruction against the creation of less internal classes. Another option would be to store the property cache in the internal class and let QObjectWrapper always transition via the property cache. Task-number: QTBUG-69898 Change-Id: I9c378c071acc6d7d4a34a2a76616f9594119d515 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * Baseline JIT: Save accumulator in toInt32LhsAcc()Ulf Hermann2019-03-192-16/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | toInt32LhsAcc convertes both the lhs and the accumulator to int32. If the accumulator is not saved, a GC run during the conversion of the lhs might trash its value. Fixes: QTBUG-74058 Change-Id: Ic42693061c7d483bb430d77bcc095de6ff9a6843 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Update JavaScript documentationUlf Hermann2019-03-192-3/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | Update function list and refer to the 7th edition of the ECMAScript standard. Fixes: QTBUG-73837 Change-Id: I4332de3ded0373393107b6d5bab95363a0b9ebb9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Fix compilation for SLES 12Ulf Hermann2019-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Apparently only some compilers see through QPointer on connect() Fixes: QTBUG-74500 Change-Id: I4d0ca7c8ab8b7eae281deff14523a1628e669279 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Export all private Input Handlers and related classesShawn Rutledge2019-03-189-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was the intention already in 5.12, but we left it with Q_AUTOTEST_EXPORT until now. Users should be able to begin experiments with subclassing handlers, since that is intended to be officially supported in 5.14 with public headers. Change-Id: I89471b3ef748936059ed4444eac5348d26a3344b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-1825-327/+558
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4codegen.cpp Change-Id: I66b7db42bf208855889094ace0267326595ce03c
| | * Fix leaking propertyCache inside QQmlAdaptorModel::AccessorsKirill Burtsev2019-03-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQmlRefPointer works in AddRef mode for assignment of a raw pointer. This creates additional reference to original object and it will never be garbage collected in this case. Amends change 99e2356a73. Task-number: QTBUG-74148 Change-Id: Ic0f03e842965c5c82b357d10ab8b0d6a62411fc8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Merge "Merge remote-tracking branch 'origin/5.12.2' into 5.12" into ↵Liang Qi2019-03-152-6/+104
| | |\ | | | | | | | | | | | | refs/staging/5.12
| | | * Merge remote-tracking branch 'origin/5.12.2' into 5.12Qt Forward Merge Bot2019-03-152-6/+104
| | | |\ | | | | | | | | | | | | | | | Change-Id: Ic631da33e81868ef62ca70c1aba243b3b0e6c5a8
| | | | * Add changes file for Qt 5.12.2v5.12.2Antti Kokko2019-02-251-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 0999c78ea33d71ba211b7fa90a5d88dd5b29b3fd Avoid crash in property requirements test + 52727146db11d3f7f454e15865655d03496a3300 Fix build with -c++std=c++11 + 7bcc5242c1543785ae4d6a54b9096874a421582f Make sure JIT is disabled when building for ILP32 ABI + bcc55604d9371ea6fb6f223a5897ab44b3bc9665 quicktest: winrt: Use qml files from resource system by default + 3795904e3831722e222fa32a1e52aeb6b3e6ba87 V4: Fix stack alignment in JITted code + c0e16b469f1bce8fc96d751656a43d7396ce4276 Fix build error when building with -no-feature-translation + 0924e03e245c1d628bc7f864d6b194b137116b6e Bump version + cfdb483613494d982a574c9334f2b21621024b1b Fix crash with qt.qml.binding.removal.info=true + 4aa7fe666be35b5699b0e201c3a963777f874e4d tst_qquickapplication: Don't assume app activation is tied to window activation + f0a9c1efe36b952dfe3e802f3ceeee6ed10a65f5 Stabilize tst_QQuickPathView::package() + aca0351c7ce933503b042fd8d745d220c7dd331d QQmlMetaType: Erase attached properties in dtor + 8396dc86f28e89a920d85f59518fac79da8480eb StorageModel manual test: use DelegateChoices to show data graphically + 8fd3cfe7d0f39a731c585334299f5160ad952df9 Annotate stack traces when frames are elided through tail calls + 9e3c46961a5f48c3a704b0147e1f073f7516da9c Remove reference to OpenGL from distance field cache superclass + 84e15a609b37a64baf82ed20f8d4f79474989226 Documentation: Start using the \nullptr macro + dfb3ccddfce6376cf8028ad31d6933b8fdfd1a47 TestLib: Remove outdated note from TestCase.mouseDrag + 84a1cac0baf2e089989ef1cba31437e7c3917d95 Skip shadersource-dynamic-shadersource test on XCB platform + 8380e4c4a4f3f49a74a8bc0ff330e1c9e14dbafc Add handlers declared as Flickable children to its contentItem + feb9ace3de30170f785217fdb7c454e92ca6d525 QQmlNotifier: Always keep the isNotifying flag when updating senderPtr + ba6371fb2ae3ad0096ec672f61a7a989c297d8fc MemoryManager: Only clear weak values once + 8ad8a5ddec05832c34f0cab3c8cf6530ea6c66c8 Canvas: Guard context pointer against external deletion + f4ab0ab62496e63db72592845b285bab3d8388b9 Silent -Wdouble-promotion warning + cf04d5ee18344d45da538810654690bd3936f46a Bring behavior of String.replace() in line with other engines + 84b47be6c79761e274454d437b73a1ac2c6789c9 Add *.pro.user.* to .gitignore + 63bbaf837976bae45fdd2766da0ed4cc808cc0ac PinchHandler: Avoid unwanted translations when axes are disabled + dea0f1b1e69cd313f81dc998e973428161d411e9 PinchHandler: fix pedantic warnings + 454676a8745a7334539449562a5fda47db2fc2ca Fix byte code register dump output + 679a9972b46b0ebd03444f3c08ce7d3424c494f9 TextInput: Stop leaking password values to process memory + 729b1ceb8904a857ba4c804e8a58b9ef4ef7b193 Correctly scope unwind handlers for try blocks + b7b384658b21e741f9a1fde60b1c1ee69a83e278 Remove revisions from Qt.labs.settings methods and properties + a8729cf143a79b274c002166476c54dc152c6679 TapHander: do not "want" an eventPoint that is outside parent bounds + 205f836e5d976a983638dd2969077a9e24c1c4fd V4: Fix unwind handler reset after for-in loop + 5d8d0d7068bc8498ea2a6a4c9bc16e0eeb92836c doc: Two class members can not have the same name + d27d896d8cb9d240138fe8ea69f1051f74ce1945 Improve error message + 5de48ee56a5afb0045d40851a4a1dd79db82c772 QMLJS: Have ScanFunctions iterate over ArrayPattern nodes + 78c1fcbc49f56463064eef738a475d9018357b24 QQuickWindow: don't give exclusive grab to invisible or disabled Items + 8ab6ded97633bf7f74e7ca4de35ed56d07f358d8 Fix bug where QQMPH kept an exclusive grab when no buttons were pressed + 895302829b46e00cde8eef13eb7c630af5d771e2 Try to stabilize tst_qquickwindow::defaultSurfaceFormat + 612ac8749782af9c58a0e823b7180e0018a42be8 Doc: explain when the move velocity and duration properties are used + bb2dce1d902405acfd5aaf997860c0f0318bce77 Try to fix flakiness in flickableinterop test + 734f5a31c7a72d87a99103051ed327addae0ab99 Remove blacklisting of several tests that are passing + 24a686077579b04874f956a1dbb212a91836b64e Un-blacklist tst_qquickflickable::rebound + f2cc7c8580f2a25554cf37426096935c62a5b7af Un-blacklist tst_qquickanimations + a804f31ee2665501c1894cbae8302db181090bd5 Move initView() to tests/auto/quick/shared + eeedd26f35369a61d66283b8e2994a6e87c314fe Fix background color of some QML lancelot test scenes + 91a71bce9c633934540e9f06fb081e3b89259ff3 Defer QML testing until event loop has started + 01f9c623ed2dc1645ac022d69062f720e3b50132 Don't optimize global lookups if fast QML lookups are disabled + 1e3ed172f35abaa0e0af43ee22259bc3cd188ad8 Connect quit() and exit() signals with queued connections + 68d0377736a541fa29d1aaba6b7aa4a4cf8781ef Make test more robust in case we have interleaved update events + 0148243a77a42de1ba6170a1da3977b3026c1927 Canvas: Handle switching between object and string based colors + dbc811e164019b5f9ce371cb7b49d695644f6a90 DelegateModel: Zero foreign context objects when they are deleted + 9343fbc478e42c7aec3247486b25b34f1908e93b PropertCache: Don't pass Q_GADGET value types as integers + 8df1afa89558ddb608ff0df792d2015dd5e2e6ac V4: Fix JS tail call crashes on win32/linux32 + d96a700cc3611480ff76023287cb06f455a37b02 V4: Fix failing assert on all 32bit platforms + 94d30df911dccd830a18d7c2e75397505ef9a600 Check parameter types when invoking C++ functions from QML + 885e4af1f4ba3f047c3d932a1a780ddbba481170 QML: Don't crash the parser on certain kinds of bad input + 2131ec383b588e2160cb72247e61f7eab71cc0b1 QQuickTableView: use correct WRITE function for contentHeight + 06ec6340d0eff763e52135afabc13662b3892c43 Avoid unnecessary re-generation qml cache files in some circumstances + 56d6d905c23607a610b8af142016108063a48e3a Doc: elaborate on default values for Layout.alignment + 407e2769c7b7909fdb2979090e71fa636f109a04 Fix PropertyKey::isArrayIndex Change-Id: I47b6bb6d315c8a3306845efc01abd6f7f6c74ec2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | | * Update plugins.qmltypes for Qt.labs.settingsKai Koehne2019-02-221-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update got necessary after b7b384658b21e741f9a1fde60b1c1ee69a83e278 went in. Task-number: QTBUG-73239 Change-Id: Ic93bbcf5be7f0f33d36b254b3ca30526b86c858c Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * | | Fix lookups the transition between primitive strings and string objectsSimon Hausmann2019-03-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suppose we have function foo(x) { return x.constructor; } and we call it first with foo("hello") then the lookup will be initialized with a primitive getter from the prototype. When we subsequently call foo(new String("world")) then the primitiveGetterProto() will check that the provided object is of the same type as last time, which erroneously succeeds. Indeed, both are of Managed type. However now we're passing a full-fledged object, which is not a primitive anymore - hence the additional check to ensure that we fall back to the generic getter. Task-number: QTBUG-69898 Change-Id: I3c7a8384bfdf0e31b7c6247cce80fe7448b627b3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | Fix up global name determination when compiling ahead of timeSimon Hausmann2019-03-153-13/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The list of names is still suboptimal, but at least it's shared now. Task-number: QTBUG-69898 Change-Id: I16c9839c4a1f097053b28caea894b67757972826 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | Fix type error exception messages when using member lookupsSimon Hausmann2019-03-151-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our tests expect those exceptions to have the same message as when not using lookups. Task-number: QTBUG-69898 Change-Id: Iab36519844a3a49ef9e34346e9afeb2eee9f9ced Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | Make object property lookup resolution virtualSimon Hausmann2019-03-154-74/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows sub-classes of Object to have their own lookup resolution and verification logic, instead of squeezing it all into qv4lookup.cpp. The typical fallbacks are still in qv4lookup.cpp though. Task-number: QTBUG-69898 Change-Id: I32a8884982b37e2065090666a7bf05b198f5b7fd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | * | | Try to fix tst_qquickrectangle::gradient_separate()Ulf Hermann2019-03-151-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QTRY_VERIFY in order to allow for a delay in rendering the rectangle. Fixes: QTBUG-74468 Change-Id: I797b269358aaa35487144bb03a85f36646e2302f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | | Unify the JavaScript parsing recursion checksUlf Hermann2019-03-1511-75/+100
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only need to check in one central location and we can allow for more recursion. 4k recursions seem tolerable. A common default for stack sizes is 8MB. Each recursion step takes up to 1k stack space in debug mode. So, exhausting this would burn about half of the available stack size. We don't report the exact source location in this case as finding the source location may itself trigger a deep recursion. Fixes: QTBUG-74087 Change-Id: I43e6e20b322f6035c7136a6f381230ec285c30ae Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | Doc: Link to the correct example in Qt Quick States topicTopi Reinio2019-03-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While there is no dedicated example for states and transitions for Qt Quick, the Animation example covers these concepts. Fixes: QTBUG-74428 Change-Id: I00f6ca54123011599ebbb6b7bc53d3104b1586ca Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | Don't keep raw pointers to SparseArrayNodeUlf Hermann2019-03-144-5/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The nodes are owned by the SparseArrayData and will be freed whenever an item is deleted from the array. Therefore, we have to look up the node for each iteration. This is slightly slower, but at least it doesn't crash. Fixes: QTBUG-74188 Change-Id: Id24324a8c83b00b3ad1212cdaabccabd6c8a999f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | Save some stack space during code generationUlf Hermann2019-03-145-153/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Result objects are rather large, 96 bytes here. In a recursive algorithm such as our parser, we should not keep too many of them on the stack. Also, the size of Reference can be reduced by employing a bit field rather than a number of booleans. Also, try to convince the compiler to inline the accept() functions. The extra stack frames those create are unnecessary. Task-number: QTBUG-74087 Change-Id: I5c064491172366bb0abef99ffe9314080401a7d1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | | Fix qdoc errorsFriedemann Kleint2019-03-152-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ',' to enumerator and rearrange Q_QDOC #ifdefs, fixing: LOG Build & visit PCH for QtQuickDoc src/quick/scenegraph/coreapi/qsgnode.h:97:49: error: missing ',' between enumerators src/qml/qml/qqml.h:593:17: error: expected namespace name Change-Id: I4491c5885c5cdb8a156d9a7abcca5db4d68d1c2e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | | V4: Add trace slot for UPlusErik Verbruggen2019-03-229-13/+37
| | | | | | | | | | | | | | | | | | | | Change-Id: I0bb5055024e30c32b82e1555c820ea5ced8923f5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Simplify invocation of TableModel.roleDataProvider (toScriptValue)Shawn Rutledge2019-03-211-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After "QV4Engine: Unify fromValue and metaTypeToJS", QJSEngine::toScriptValue(QModelIndex) is working correctly, so we don't need the messy low-level technique with QV4::ExecutionEngine anymore. Change-Id: I7df17ae75c11abd21fdc9ab4310c9ecf615b6a71 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | QV4Engine: Unify fromValue and metaTypeToJSRobin Burchell2019-03-214-133/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Somehow, we ended up with two codepaths doing essentially the same thing: constructing a JS value from a QVariant. metaTypeToJS is invoked from QJSEngine::toScriptValue, whereas fromVariant() is used in various places internally. metaTypeToJS lacks proper handling for a number of cases, such as builtin types like QPointF, which lead to toScriptValue(QPointF) (incorrectly, and uselessly) constructing a VariantObject which couldn't then do anything useful. [ChangeLog][QtQml] QJSEngine::toScriptValue will now return correct JavaScript objects in more cases, for example, for gadget types like QPointF. [ChangeLog][QtQml] QJSEngine::toScriptValue now uses the same behavior as the rest of the engine when building JavaScript values, which will cause the types of some returned JavaScript objects to change. For instance, string lists are now returned as sequence objects, not array objects, and QChar now constructs a JavaScript string. Change-Id: I0290eb7c9c46e7b508d497cc33cd61d9378f3872 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | | Support QRegularExpression on the same level as QRegExpUlf Hermann2019-03-2015-29/+282
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QRegularExpression is the recommended way to do regular expressions nowadays. Support assignment of JavaScript regular expressions to QRegularExpression properties of QObjects and the other way around. QJSValue::toVariant() will create a QRegularExpression from a JavaScript RegExp by default now. [ChangeLog][QtQml][Important Behavior Changes] QRegularExpression is now supported the same way QRegExp is in QML. QJSValue::toVariant() creates a QRegularExpression variant rather than a QRegExp one from a JavaScript regular expression now. Fixes: QTBUG-73429 Change-Id: I301a02771cd17903406c2bc5c7aaeca6cce629f0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Use QQmlRefCount for QQmlType(Private)Ulf Hermann2019-03-196-67/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we already have an implementation of refcounting, we can just use that intead of inventing another one. This also gives us nice move ctors and operators. Also, use const pointers to QQmlTypePrivate where possible. This exposes quite some nastiness that needs to be fixed in follow-up commits: All the mutable members of QQmlTypePrivate are unsafe for multithreaded use. Change-Id: I3be8f2c53d86e06ffa80c8df8830473fe6d1d91d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Replace bit field with normal typesErik Verbruggen2019-03-192-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | So they can be addressed through offsetof() in JITs. Change-Id: If598dde3ace89db0643feed895bdf706563c3cce Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-1554-180/+516
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4codegen.cpp Change-Id: I604517d0948fb5056ce36cc104f13ac956fbcc24
| * | | Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-1315-36/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-73484 Change-Id: I089f5122817a4da1fce13f55d2975240d741b9f6 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * | | Doc: include support for astc compressed texture filesEirik Aavitsland2019-03-131-1/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I939cba4ccdb5408a5a6a47f1324538462f51e35a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into ↵Ulf Hermann2019-03-1335-165/+425
| |\ \ \ | | | | | | | | | | | | | | | refs/staging/5.13
| | * | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-1335-165/+425
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/compiler/qv4codegen.cpp src/qml/animations/qsequentialanimationgroupjob.cpp Change-Id: I8b76e509fd7c8599d4cef25181d790ee28edab54
| | | * | Doc: link to C++ and QML integration flowchartMitch Curtis2019-03-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The chart makes it easier to find the correct way to register a C++ type with the QML type system, so it makes sense to link to it from these docs. Task-number: QTBUG-74318 Change-Id: Iba74ce02d200d6609dbb0a508d618226a6fe1e54 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | | * | Fix leaking of QML QQuickItemGrabResult objectsVal Doroshchuk2019-03-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QQuickItem::grabToImage is called from QML, QQuickItemGrabResult is created but was never deleted. Adding a deleteLater() right after dispatching the callback ensures that QQuickItemGrabResult objects are deleted. Task-number: QTBUG-73723 Change-Id: Ifda85599098f2b679ae5f22e1d47a73962ed0a85 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | | * | Fix re-dumping of composite typesKai Koehne2019-03-061-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just like with 'normal' types, we don't want to include composite types that were actually part of depending imports. So we need to remove them from the list. This fixes an issue with QtQuick.Controls style plugins, were so far types from QtQuick.Controls 2 imports were re-dumped. Change-Id: Ib099ae9cfba35218cab852d4d260369c2a652727 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| | | * | Disable tail calls for function called with more arguments than formalsUlf Hermann2019-03-042-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot easily find the required stack space to store the extra arguments without adding a new stack frame. In principle it would be possible, but heavily recursing on such functions should be a rare problem. Change-Id: I1a53a6d29e37ce67aa7bd64acb7b1f41197e84c0 Fixes: QTBUG-72807 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | | * | qmlplugindump: Make compositeTypes non-staticKai Koehne2019-03-041-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia4f35781ed96a347464b5e423bd7446f5a7f6752 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>