aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add changes file for Qt 5.12.7v5.12.7Antti Kokko2020-01-211-0/+41
| | | | | | | | | | | | | | | | + 1b5bb04b0e092a214328b90dae5eb15f128fb677 Bump version + 5dad0afa9e0905bd384878327f19cc7faf3d8d9f MultiPointTouchArea: stop ignoring Qt-synthesized mouse events + 33d93478aa2a53983dd6a02588db2dc0ccbe694d Set the screen on the QOpenGLContext to be the same as the window + ff6bd91f580fa5ddae2d02f32b9d83be4374a445 MouseArea: react to touch ungrab + e93a471dfde3c3b08d41eac53e595129ca520c68 Particle system: fix infinite loop after running for many hours + 6dff64714e3683c1af6164f99ffe23b3a0001be1 TapHandler: don't reject stationary touchpoints + d18f6c27af18c2cf4090b456349196e9f563e9b3 QQuickBehavior: Check that animation is not semi-deleted + 7ff9e3c3959c2ef1d7c95c8d2a1d277ccb2752a9 On QQmlEngine destruction drop singletons before type loader Change-Id: I1ce787590e47c62f3d0781443b3c02ac449eefe3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* On QQmlEngine destruction drop singletons before type loaderUlf Hermann2020-01-143-2/+39
| | | | | | | | | The singleton destruction can trigger additional types to be loaded. Fixes: QTBUG-80840 Change-Id: Ifa406b2a1cfd3b9e9b36e8005dfc0808eebf15cf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 3c23f5371a19991771bd29c27d377c6672e46cd1)
* Merge remote-tracking branch 'origin/5.12.6' into 5.12Qt Forward Merge Bot2020-01-073-52/+68
|\ | | | | | | Change-Id: I2b6a5d21048f5e2af435ff0d32f68ce332cd04d3
| * Add changes file for Qt 5.12.6v5.12.6Antti Kokko2019-11-071-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 4d080635872fbb77a2adfb736d3f108b62cc058a Remove HACKING file + 4b944cb61fb3ceee2f1b743823e4a83b686bafd6 Fix loading of ES modules when using CONFIG += qtquickcompiler + 0ec16fb93db6ad6792b3269838211485e8af464b Add missing HoverHandler docs + 8577f12bf4dfd9adfe8c5b85a3712bf1cc5ba0c3 Fix build with -no-feature-quick-sprite + 35acc9fc3c41446bacbbfe754f7f494de7f62411 QQuickTextNodeEngine: don't create background when its alpha is 0 + eeb00570679c447f4701a92cd2e836f098724979 Visit lists iteratively when parsing QML + db3dd029d7cd911712102efd5ea71868494f9f6f Fix various accumulator-saving problems + 44600c6b5da91a6b28f642486ca898b68fbdb675 Check if the filters are different before triggering an update + 72b95fc8cac5b9275317f4e5fe74f64aa97a3437 lancelot graphics test: various fixes + ee8f5482d6ba8ffa0faf2bbf25569d59f3467fc8 Revert accidental change to test262 + 2f16944d45e1ade14ad086a547a9673b1ceba7bc Allow semicolon after property declaration + 128ba80362be4e8cf13147307eb9c652c4b5f124 PathView: grab mouse on press if already moving + da74e8fbb91b680d7783daa1595baa3ecc92cb2e PathView: reduce velocity by linear decay model if release is delayed + 803151f460509332a1fc8142e1b7659a42f70690 Handle "interesting" stationary touchpoints as if they moved + 409807a022f65af86413ae09b5befff1eb99e727 Make QQmlValueTypeFactory::valueType() and isValueType() consistent + 4c42cedf8211f88689e784d52265eae21ba1e4ca Bump version Change-Id: I614f9e90ebf23cfd59273e53c46a0e40116b5e8b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge 5.12 into 5.12.6Kari Oikarinen2019-11-072-4/+38
| |\ | | | | | | | | | Change-Id: Ie0005eed1c1c85fb866b022e66bc35670dfb7a37
| * | QQmlVMEMetaObject: Scope MemberData for allocating writeUlf Hermann2019-11-062-52/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we need to allocate in order to write a property of the object, we need to make sure that the member data is not garbage collected during that allocation. Change-Id: I885cdc547588c1b20450e1586765cd0266b4c4f0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 21844350df530a65071e8679d5e047adf553e0f7) Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | QQuickBehavior: Check that animation is not semi-deletedFabian Kosmale2019-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickPopup::~QQuickPopup hides its overlay in its destructor. If a Behavior is installed on its opacity property, it will get triggered by this. If the animation associated with the Behavior is a property of the Popup, which is bound to a QML element, it will however be already partially destructed, as QQmlElement<QQuickPopup>::~QQmlElement and in turn QQmlPrivate::qdeclarativeelement_destructor will have deleted its associated memory, before QQuickPopup::~QQuickPopup has been called. As this does not set any pointers to null, it would seem as if the Animation were still valid. To remedy this, we now check if the animation is in fact marked for deletetion, and, if so, bypass the interception. Fixes: QTBUG-80070 Change-Id: I0e33262c6b3963c46e300ae76c05063c00ff258b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 991035ea1f00671d79c340a8a5c038e6aae1ece7) Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | TapHandler: don't reject stationary touchpointsShawn Rutledge2019-12-093-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> (cherry picked from commit 7cdc3727a2b01c59d0a9e19a3cfc4e226ac1ab77)
* | | Particle system: fix infinite loop after running for many hoursYulong Bai2019-12-092-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The infinite loop was triggered by several issues coincide together. In short, the direct cause is the particle's born time and lifespan were represented in 32 bit floats and not precise enough to pass aliveness check as time grows large. While the time grows large, the resolution of floating point decreases to the extent that resolution is even bigger than 2 milliseconds. Then it will fail to pass the aliveness check. Then, the dead particles will be treated alive and they are kept inserting into and popping out of the particles heap, which is similar to a live-lock. The fix is to separate freeing dead and inserting back alive ones in two different loops, ensure that the emitter can update time for next frame. There are still other issues: 1) as the times runs very long, the particle needs several frames's updates to actually make the states change noticeable, which means animation may become not so smooth after running for too long (like several days). May change particle's born/lifespan time to 64 bits in another patch. 2) the particle system's and animation's timers are 32 bit integers, after 2^31 milliseconds(24.8551348 days), they will overflow. May promote them to 64 bits in another patch. 3) as the time grows even larger such that the resolution is bigger than 16ms at 60 hz frame rate, the live-lock may occur again. Because the timer advances/delta will be not large enough to make dead ones reused. The next live-lock estimated time is 2^24*16 milliseconds = 3.10689185 days. The final fixes are 1) and 2) 4) may change the particle system's internal timer be set to arbitrary value (fast forward to large value) for easier writing autotest for above cases. Change-Id: I1190c0814c8197876b26dd4182dc4b065dd1ece6 Task-number: QTBUG-64138 Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io> (cherry picked from commit f8df9dc8b45cd9e386b66255183c58f3dfcc41a9) Reviewed-by: Liang Qi <liang.qi@qt.io>
* | | MouseArea: react to touch ungrabShawn Rutledge2019-12-056-0/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> (cherry picked from commit 23df1603f514407d245a2740f32f589318ef654e)
* | | Set the screen on the QOpenGLContext to be the same as the windowAndy Shaw2019-11-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures that the QOpenGLContext has the right screen information and can create a compatible context for use with QQuickWidget. Change-Id: I9d78ff2b616e5c1d1c11d1da438ce336a0f24953 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 4080025fed9d43a78b578bcab67397712459d28c)
* | | MultiPointTouchArea: stop ignoring Qt-synthesized mouse eventsShawn Rutledge2019-11-263-21/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> (cherry picked from commit 0012f8bd152a36a67abc696465f27d612625b5d9)
* | | Bump versionFrederik Gladhorn2019-11-071-1/+1
| |/ |/|
* | Fix bug when highlight was not respected after currentIndex changedJan Arve Sæther2019-11-042-4/+38
|/ | | | | | | | | | | | | | | | | | | | | QQuickListViewPrivate::fixup() seems to only do "fixup" if moveReason != QQuickListViewPrivate::SetIndex By default, moveReason is set to Other. In the snippet given in QTBUG-77418, this is why the highlight was respected when resizing the ListView initially. However, after the currentIndex was changed, moveReason was changed to SetIndex. When we then resized the ListView, it still had the value SetIndex, and would fail to "fixup" properly. Since the ListView preferredHighlightBegin is bound to width, we should set moveReason to Other in the property setters that are related to highlight. This is then consistent with how setCurrentIndex() does it (it similarly sets d->moveReason = QQuickItemViewPrivate::SetIndex;) Change-Id: I7edf77fc977e8c7e3fc656ff5bb22b4dd01afbe4 Task-number: QTBUG-77418 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Bump versionFrederik Gladhorn2019-10-301-1/+1
|
* Make QQmlValueTypeFactory::valueType() and isValueType() consistentUlf Hermann2019-10-169-49/+105
| | | | | | | | | | | | | | | | | | | If isValueType() returns true, we should really return a non-null value from valueType(). Otherwise the assumption that QQmlValueTypeWrapper::valueType is never null breaks. In particular, the unknown type and various primitive types are _not_ value types. We special case the, probably common, UnknownType and check the actual return value of valueType() for anything else. In order to avoid looking up the metaobject each time we request a type that is not a value type, we keep an invalid value type as marker for "not checked yet" and replace that with nullptr once we determine that the type in question is indeed not a value type. Fixes: QTBUG-76866 Change-Id: I797f4cdd4db48ffc1b8fa2d919afc8022f67fa94 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit f862b3edeb8a96a49a5d12620506d33d5a5aadca) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Handle "interesting" stationary touchpoints as if they movedShawn Rutledge2019-10-103-2/+46
| | | | | | | | | | | | | | | | | | | | | | Qt Quick will not receive "uninteresting" stationary touchpoints, but only those in which some property has changed. So MultiPointTouchArea should react to stationary touchpoints in the same way as if they moved, so that UIs can react to changes in touchpoint velocity, pressure etc. And QQuickWindow has to be willing to delivery stationary touchpoints to make this possible. However when a QTouchEvent is customized for delivery to a specific Item, by including only the touchpoints that are inside the Item, then if those touchpoints are all stationary, the event only needs to be delivered if at least one of them is an "interesting" stationary touchpoint. So we need to depend on a new per-touchpoint flag that QGuiApplication will set when it discovers that some property of the touchpoint has changed. That is QTouchEventTouchPointPrivate::stationaryWithModifiedProperty. Fixes: QTBUG-77142 Change-Id: I763d56ff55c048b258dca40d88283ed016447c35 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit ae346195efaca5d01b67c5df1209512c7edaddb0) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* PathView: reduce velocity by linear decay model if release is delayedShawn Rutledge2019-09-252-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | That is, from the time between the last mouse move event to the mouse release, the velocity will be linearly discounted/depreciated until it reaches 0 at QML_FLICK_VELOCITY_DECAY_TIME, which is currently 50 ms. 50 ms seems like a long time if the user meant to flick and release immediately (in practice it might be more like 4 ms), and also a short time if the user meant to "dwell" before releasing. If we try to translate the fake physics to real physics, this would be approximately equivalent to saying that if you slide a flat plate on an air hockey table with one finger, and then stop suddenly, its momentum _would_ cause it to keep moving under your finger for up to 50ms (except that it doesn't, because our timeline doesn't "tick" until after the release); and yet if you hold it for longer than 50ms, it will stop right on the spot. That's not quite realistic, but feels OK for fake physics (like the rest of the physics in Qt Quick). Also add the qt.quick.pathview logging category, which will just log the velocity calculations for now (but is intended for anything else in PathView that seems worth logging later on). Task-number: QTBUG-77173 Task-number: QTBUG-59052 Change-Id: Ie86f18d3b3305874b698c848290e0fd3beda94de Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 3df387d63421f09533ab72e2a73fb5d259693120) Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* PathView: grab mouse on press if already movingShawn Rutledge2019-09-253-3/+132
| | | | | | | | | | | | | | | | | | | A side effect of 8fd398c9d2f5f54e446e0b402bc63a2edb50da6f is that it became possible for the highlight to stop between items, rather than snapping to a specific item, if the user taps, clicks or drags an additional time while the movement is ongoing. That was because it didn't get a mouse grab, so it missed the release event. QQuickPathViewPrivate::handleMouseReleaseEvent() needs to take care of the snapping behavior after the user stops dragging. This only affects behavior in the case that the PathView is already moving and the mouse is pressed again: we assume the user wants to alter the PathView's velocity, not interact with any delegate inside or with any parent item. Task-number: QTBUG-77173 Task-number: QTBUG-59620 Change-Id: I7b2f69a6ef8d8022d7c917a5bf9e8fb40c8848db Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit e2df4233a77ce8a37d2c8ef26b7b42fc0d33a24b)
* Allow semicolon after property declarationFabian Kosmale2019-09-243-7/+34
| | | | | | | | | | | | | | | | Most of the rules already had Semicolon at the end, however it was missing for UiScriptStatement, list properties and UiObjectInitializer. This change fixes the regression from 5.11.3 to 5.12.0, and keeps the behavior consistent. (Semicolon was only introduced in 5.14, that why we need to introduce the rule in 5.12 first) Fixes: QTBUG-77954 Change-Id: I45ef35fab399e3f971444b96d4a9ec6a99e29e09 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 45b1a3f97953fac65c6aef8e46abad865a0d0bc3)
* Revert accidental change to test262Ulf Hermann2019-09-241-0/+0
| | | | | | | (amends commit 7b47350736f46c59d81238d3d6284358a652983b) Change-Id: I485f643d89b10ab70128fe199f900432138bfec8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* lancelot graphics test: various fixesEirik Aavitsland2019-09-234-85/+28
| | | | | | | | | | | | | Prepare for new host info mechanism, support shadow build and install, and fix screengrabs being distorted on Windows. Squashed cherry pick of: ac3698ae6aaac437e21f3ce08117ea6eedb148dc 04d92f9f9c16ace63a33ee18756ab8d40a1c1a66 144193549a3a47ea3ade74289e3adc55c2bd65e6 Change-Id: Icc382c0d59e8c68613d1f0aea2a60be712615e01 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Check if the filters are different before triggering an updateAndy Shaw2019-09-191-0/+2
| | | | | | | | | | | | | If the filters list is the same as before, then there is no reason to trigger an update on the thread as the result would be the same as before. This solves a problem that was occurring with iOS 13 as it would get stuck due to repeated calls to setNameFilters() with the same filter list. Fixes: QTBUG-78468 Change-Id: I705cfaaa0a1a19b1d0397140a5831fc67557a4ee Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 9274ed77bc273330a3f202a00239dcc1b6ef8cc3)
* Merge "Merge remote-tracking branch 'origin/5.12.5' into 5.12"Qt Forward Merge Bot2019-09-072-0/+89
|\
| * Merge remote-tracking branch 'origin/5.12.5' into 5.12Qt Forward Merge Bot2019-09-072-0/+89
|/| | | | | | | Change-Id: I6f456baf6bade7cdc66529c2b28d914c47929941
| * Add changes file for Qt 5.12.5v5.12.5Antti Kokko2019-08-262-0/+89
| | | | | | | | | | | | Change-Id: I147d3faefac8114e08a0594a0c43b3cdae959804 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Fix various accumulator-saving problemsUlf Hermann2019-09-035-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to keep the accumulator alive across function calls. This requires: 1, Saving the accumulator on the stack if the function might allocate, to protect it from the garbage collector. However, we don't need to do that if the result of the function is to be saved in the accumulator and the function itself doesn't use the accumulator as argument. In this case the previous value becomes unaccessible and we might as well GC it. 2, In the JIT, restoring the accumulator from the stack after the function call if we want to ignore the return value. 3, Therefore, also saving the accumulator on the stack before calling in case of 2. We assume that we don't need to keep the accumulator alive across the jump to the exception handler. Saving the accumulator more often than necessary is detrimental for performance. To make sure the assumption holds, explicitly load the accumulator with undefined _before_ jumping to any exception handler. Change-Id: I78cbc42847b8885a0659b23f3b81655b7f1a0bc4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Visit lists iteratively when parsing QMLUlf Hermann2019-09-031-35/+38
| | | | | | | | | | | | | | | | Change-Id: I243d12b75a07ac04560b444c326bff77d0dc642c Fixes: QTBUG-74087 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 426f3035a3753800ce340a83bdf8db13922f4cae)
* | QQuickTextNodeEngine: don't create background when its alpha is 0Wang Chuan2019-08-293-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the alpha value for the background color of a text element is 0, we don't need to create a rectangle node to represent it, as the rectangle will be invisible anyway. [ChangeLog][QtQuick][QQuickTextNodeEngine] don't create a new rectangle node as the background of text, when the alpha of it is 0 Fixes: QTBUG-76137 Change-Id: I40c624ee8f61740fd07e7d3751a78b6224882913 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Fix build with -no-feature-quick-spriteJohan Klokkhammer Helsing2019-08-271-0/+2
| | | | | | | | | | Change-Id: I1599dde865a7c5454a52b45b2cc877a8c43fb10d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add missing HoverHandler docsShawn Rutledge2019-08-261-3/+21
| | | | | | | | | | | | | | | | | | It was intended to inherit most of the docs from SinglePointHandler; but the hovered property is unique. Task-number: QTBUG-68072 Change-Id: I4b49569c9966b9252a61e40e8b07ef98f34849a4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Fix loading of ES modules when using CONFIG += qtquickcompilerSimon Hausmann2019-08-265-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added the missing lookup for cached .mjs files in ExecutionEngine::compileModule. This allows using .mjs files in WorkerScript {} elements in conjunction with the Qt Quick Compiler and also fixes the use when using QJSEngine::importModule. [ChangeLog][QtQml] Fix loading of EcmaScript modules when using the Qt Quick Compiler. Fixes: QTBUG-77761 Change-Id: I58130b0468f4920b2f6c49b98a2f51d5ae3a0491 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Remove HACKING fileEskil Abrahamsen Blomfeldt2019-08-231-23/+0
|/ | | | | | | | | | This file ends up in release packages and contains some outdated documentation about where to put different types of examples, which should probably not be documented by random files in the source repository. Change-Id: If35ee6cd2b4084fc5763a0cab39b9ff3e44fa133 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Document that QQmlPropertyMap's meta object is not threadsafeVolker Hilsheimer2019-08-211-0/+4
| | | | | | | | | | It is generated and modified at runtime, so applications have to synchronize access explicitly. Fixes: QTBUG-70915 Change-Id: Ie6f29eef8532e2fa4ebf8dad1678cd2acbacf659 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* doc: Clarify that the delegate populate transition doesn't always runShawn Rutledge2019-08-122-2/+45
| | | | | | Fixes: QTBUG-42798 Change-Id: If10f06450f1e50893e5ba103e7c8c2d83667a651 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Revert "Yield error if qtquickcompiler is used in non-QML projects"Jörg Bornemann2019-08-021-10/+0
| | | | | | | | | This reverts commit c5578b16d6454e708c8ce12661a85d41eeaaa758, because it prevents enabling the qtquickcompiler feature globally. Fixes: QTBUG-77277 Change-Id: Ic80835c462570a67ae3105bb3d1b6452800d2c94 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix possible crash with top/bottom aligned imagesEskil Abrahamsen Blomfeldt2019-07-304-1/+43
| | | | | | | | | | | | | | | | An image inside at the end of a text block which did not start at text position 0 would resolve to an invalid QTextLine, since we passed the document position to lineForTextPosition(), which expects the relative block position. If the image was aligned to top or bottom, so that the extracted QTextLine was actually accessed, this would cause a crash. [ChangeLog][QtQuick][Text] Fixed a bug where aligning an image to "top" or "bottom" could cause a crash under certain circumstances. Task-number: QTBUG-77217 Change-Id: Iaa239ba482f2a765703656e4116cbebb8435a66e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Doc: Fix QtQuick.Shapes::ShapePath::strokeWidth property typeLeena Miettinen2019-07-261-1/+1
| | | | | | Fixes: QTBUG-73541 Change-Id: Icb15cee3c49f142ef3634e35427dbbc0b9a2183e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Do not search for Singletons from more recent versionsFabian Kosmale2019-07-2310-1/+143
| | | | | | | | | | This would break importing older versions of a module, as we would try to locate a singleton which does not exist in this version. Fixes: QTBUG-77102 Change-Id: I78be1ec111d2be26a14b2a94bbf743cf6238cddd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Always waitForWindow after centerOnScreen()Dimitrios Apostolou2019-07-221-0/+3
| | | | | | | | | | | | | | | Because centerOnScreen asks the window manager to move the window, but does not wait for it. This is applied in the same spirit as this change in qtquickcontrols2: https://codereview.qt-project.org/c/qt/qtquickcontrols2/+/268200 These tests appear slightly flaky on the Grafana dashboard, this commit might help. Change-Id: I30d3f4717aca435c94fb1a447c4b5c51021da3be Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Doc: fix code snippetPaul Wicking2019-07-191-1/+1
| | | | | | Task-number: QTBUG-77094 Change-Id: I9058bf7b65e8d390327af0624df611de4965f1e4 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Support text color for color fontsEskil Abrahamsen Blomfeldt2019-07-193-9/+30
| | | | | | | | | | | | | | | In order to support pen color for color fonts, we have to bake the color into the cache (since the cache contains actual color data and not alpha values). This is equivalent of 78caba7ae637bf4b33631c3425eb92ec3946c99e in Qt Base. [ChangeLog][Text] Added support for text color when using color fonts. Task-number: QTBUG-74761 Change-Id: I5910636c240bd4c0ec3f0b13db4e2f78d4b062ff Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Doc: Fix typos in code snippetsPaul Wicking2019-07-181-2/+2
| | | | | | Fixes: QTBUG-77094 Change-Id: Ia974c4d8abeab48a206fb868ee5532d4aeae7319 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickItemView: refill itself before populate transitionWang Chuan2019-07-163-0/+96
| | | | | | | | | | | | | | | | | | The view uses a visible items list, which is maintained by the refill() method, to determine which items should be triggered to do the populate transition. The refill() was only invoked when component completed before doing the populate transition; but if the size of the view depends on the size of window (for example, using anchors.fill), more delegates could become visible after component completed. In such a case, part of visible items were not be triggered to do the transition. [ChangeLog][QtQuick][Item Views] Item views such as ListView now properly populate delegates with a populate transition when the view is resized after componentComplete. Fixes: QTBUG-76487 Change-Id: Id90c3f73d9911c8a1d6d8b1ea0c51f6c27d0ed5b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix crashes in QQmlXMLHttpRequestPavel Tumakaev2019-07-131-3/+9
| | | | | | | | | | | | | | | | | | | | | ExecutionEngine::callingQmlContext() in some cases returns a null pointer. According to ISO/IEC 14882 §9.3.1/1 "If a nonstatic member function of a class X is called for an object that is not of type X, or of a type derived from X, the behavior is undefined". Thus, invoking a QQmlContextData::resolvedUrl() member function on a null instance results in undefined behavior, and leads to a crash in some cases. ExecutionEngine::qmlEngine() in some cases returns a null pointer. The QQmlEnginePrivate::get() method must return a pointer to a QQmlEngine private internal class. Call QQmlEnginePrivate::get() with passed null pointer leads to application crash. If the QQmlEngine pointer is null, the QQmlEnginePrivate pointer should also be null. Thus, if the pointer to QQmlEngine is null pointer, the null pointer to the private class should be passed to the QQmlEnginePrivate::warning(). Task-number: QTBUG-75983 Change-Id: Iad240bb6db0be58e9087b7a86f8d400b07623865 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix static buildSimon Hausmann2019-07-122-15/+2
| | | | | | | | | Use the GL attribute name helper functions only from QtQuick to avoid a clash of symbols when linking statically. Change-Id: Ic95b984092f5db222db6dc1f4ac5fb443b5ab714 Fixes: QTBUG-77012 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix promise chainingFabian Kosmale2019-07-104-46/+201
| | | | | | Fixes: QTBUG-71329 Change-Id: I261b25ff281bb44d03650ab05258743f104f3cc9 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix compilation with C++20Marc Mutz2019-07-081-1/+1
| | | | | | | | | Implicit capture of 'this' in [=] is deprecated in C++20. Fix by using explicit captures. Change-Id: I49b0fd2751c1d239c4f801224b71872c227fd697 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move Event Handler acceptedButtons check back up to QQPDeviceHandlerShawn Rutledge2019-07-054-30/+62
| | | | | | | | | | | | Reverts what's left of e53510944169ac9f6753e0d14e1b24a24ff7bd9a (amends 73258eca7ab7e3981d9f4aaa5484020cb67854a0): MultiPointHandler is not only for touch handling anymore. DragHandler in particular needs to respect the acceptedButtons property. Fixes: QTBUG-76875 Fixes: QTBUG-76582 Change-Id: I414e785dd09b297c93e5e9f162be23e4a44eca54 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* TapHandler: wait until after tapped is emitted to reset point.positionShawn Rutledge2019-07-054-19/+15
| | | | | | | | | | | | | | | | | | | We don't want it to hold its position indefinitely after the button is released. But in practice, reset() gets called again anyway in QQuickSinglePointHandler::handlePointerEventImpl(), _after_ handleEventPoint(), which means after tapped() is emitted. Having the point hold its position that much longer is convenient for applications and more consistent with the state expressed by the release event. Also amend the documentation. Partially reverts 17237efaefabe924599abe00e92d8b54032d7915 [ChangeLog][Event Handlers][Important Behavior Changes] TapHandler.point now holds the release position while the tapped() signal is emitted. Fixes: QTBUG-76871 Task-number: QTBUG-64847 Change-Id: I621a2eba4507a498788e9384344e8b4b7da32403 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>