aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* QQuickTextInput: update cursor rectangle after padding changedv5.12.11Wang Chuan2021-04-193-0/+51
| | | | | | | | | | The position of cursor delegate needs to be updated when we change padding, otherwise it will be in a wrong position. Fixes: QTBUG-91867 Change-Id: I89ca84fe893ebf517ab67890196eede14a4055d7 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit d98694c4023881673259ba040c10df7e71ec3d37)
* Fix QQuickKeyNavigationAttached issueValery Volgutov2021-03-143-6/+62
| | | | | | | | | | | | | | | | | | | | When Repeater used for Item creation, we have following issue: When Repeater create new item and this item tried to use keyboard.left or keyboard.right to other Repeater's item - these items don't create yet, and we have issue with navigation keys. Set rightSet to true if right really changed. When object call KeboardNavigation::setRight with null item. rightSet field = true, but right field did not changed (null). After that navigation keys works incorrect. The same for other cases. Task-number: QTBUG-83356 Change-Id: I9ea6d6a7d13ff989aac3d9e2d22467b48080de13 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QQmlPropertyPrivate::signalExpression: handle object being nullFabian Kosmale2021-02-232-0/+14
| | | | | | | | | | | | | | QQmlData::get expects a non-null pointer, therefore we need to check whether the object still exists. Note that while this fixes the crash in the referenced bug, PropertyChanges still does not support a dynamic target. Task-number: QTBUG-46350 Change-Id: Ifeecf5df83e87468a1d314ce2b120006124d6f4b Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 1ff376e64bf5af6df7e0079700d2b9164037dc89)
* QSequentialAnimationGroupJob: Protect against self-deletionUlf Hermann2021-02-093-10/+50
| | | | | | | | | | | | setCurrentAnimation() can indirectly delete the animation group job itself by invoking the animation controller. Use the RETURN_IF_DELETED mechanism to avoid the resulting dangling pointers. Task-number: QTBUG-90401 Change-Id: Ibd0ad21e8d3af4760604c3ff37dc46101d5f49ad Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 680f28b08f65ad38c8d5498b5738231b2a2779a3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAnimationGroupJob: Don't call virtual functions from dtorUlf Hermann2021-01-252-23/+42
| | | | | | | | | | | | | The subclasses are already dead at that point. We don't need to notify them anymore. Rather, refactor the code so that we can clean up QAnimationGroupJob itself without virtual calls. Task-number: QTBUG-90401 Change-Id: I6917bf299ceb1383b9d29687e5bf53ae36803ecf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 75437f824d4c3a608af9eb1afddcb4d8c1a25944) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix property cache leaksAndrei Golubev2020-12-021-2/+5
| | | | | | | | | Ported the fix fcae2d13e43eab1ea60092194667939f85269bde to 5.12 branch Fixes: QTBUG-87228 Change-Id: If7cdf38b0f0641f9d7dca4b4dcbbde3995e05e6e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Bump versionJani Heikkinen2020-11-061-1/+1
| | | | Change-Id: I622b51718197e8c97827edd099640e281de7508c
* Revert "qquickloader: Free memory of loaded components after source change"Maximilian Goldstein2020-10-301-13/+0
| | | | | | | | | | | This reverts commit c5085eb8905f1a3c070f866746110980e84be271. It can cause crashes and only fixes an edge case that can't be encountered during normal usage. Change-Id: Ia265f0d6716b59a0f483e5a114b3f3b1a76fe898 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 0fa6091b1076bc3cc58303ff00d43efdad32b8ad) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix OPTIONS argument of qtquick_compiler_add_resourcesJoerg Bornemann2020-10-211-1/+1
| | | | | | | | | | | The OPTIONS argument is stored in the variable rcc_options, not options. Fixes: QTBUG-87721 Change-Id: Ibd04ada18461fa1c052be46f3c7aa9cb28f31e8f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io> (cherry picked from commit fc95c09b06ff6dcdf72511a06c3c64bfc59261f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qquickloader: Free memory of loaded components after source changeFabian Kosmale2020-10-211-0/+13
| | | | | | | | | | | | | | Since we cannot be sure when the event loop that would usually handle deferred deletions will run the next time we have to delete these components immediately otherwise we might run out of memory. Fixes: QTBUG-86676 Done-with: Maximilian Goldstein <max.goldstein@qt.io> Change-Id: I01d74f7eea442f8ba240dd66a4cedd6316fbeec2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit c5085eb8905f1a3c070f866746110980e84be271) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add changes file for Qt 5.12.10Antti Kokko2020-10-201-0/+32
| | | | | | | Change-Id: I2e4039eb1c1d030585dc85a1e05db642a9c6e37a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 36e4e9bbd402cefab9d7b68635a94a02e0b41187) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: mention that clipping can affect performance and link to pageMitch Curtis2020-10-191-0/+3
| | | | | | | Change-Id: I85e60dd5c8643a8e443a14250987b2b38c78dc08 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit c1c01e21d1a745eccb17d61e10d7f8a4d54d3a43) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQuickShaderEffect: fix crash when hiding parentMitch Curtis2020-10-193-1/+152
| | | | | | | | | | | | | It's possible for itemChange to be called during destruction when deleting the QQuickShaderEffectImpl. We nullify m_impl before deleting it via another pointer to it, so we must check that it's not null before trying to use it. Fixes: QTBUG-86402 Change-Id: If4955445f7cc0d1f376bc9b86b95e1cca4d88ede Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 266cd7638d887b31d56964a0f13fe208821703b1)
* Bump versionJani Heikkinen2020-10-141-1/+1
| | | | Change-Id: Icee1ea9fdd580c6d2d1f2ff7699e7c1364479fd1
* Doc: use editingFinished signal of TextInput instead of textChangedMitch Curtis2020-10-061-1/+1
| | | | | | | | | | | The former is only emitted as a result of user interaction, whereas the latter is also emitted as a result of programmatic changes. It's better to use editingFinished(). Change-Id: I71bb084bced6c33d940f550b5e3b2e57df45bd3c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 09b6ac481cc8027c79170706b329f028f33fb9f1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix interactive mode of qmlprofilerSimon Hausmann2020-10-012-3/+2
| | | | | | | | | | | | Use the correct commands for toggling the recording status and flushing. Also don't clear the event types when clearing the profiler data after a flush, as those remain valid and are needed for processing in the future. Change-Id: I5a3cd5aa33e43a3e81c53cbbaa0c5b8fb407c5bb Fixes: QTBUG-78044 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit da4069a96b97acb180023eae4ee5f2096613e51f)
* Fix crash when QSGTexture is deleted in rc->endSync()VaL Doroshchuk2020-08-071-1/+9
| | | | | | | | | | | | | | | | | | | | | | 1. When the quick pixmap is cached, it might be deleted by a timer. 2. When its QQuickPixmapData is being deleted, its QQuickTextureFactory is also deleted. Which informs the QSGRenderContext to postpone deleting of a texture that belongs to this texture factory. 3. When an update is called on the _hidden_ window, QSGGuiThreadRenderLoop::renderWindow calls rc->endSync(), which deletes postponed the texture from 2. After that the texture must not be used. But some QSGNode can still keep pointer to the deleted QSGTexture. and when updatePaintNode is called, it might produce a crash. So, suggesting a fix to inform the render loop that there is a window with pending updates, and no need to delete textures. Change-Id: I1487595dbb686e682ac3b91b9c3d21f401095daa Fixes: QTBUG-65170 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 3df5ad9d247b194401d61c3ffb4b816ec239bded) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Merge remote-tracking branch 'origin/5.12.9' into 5.12Qt Forward Merge Bot2020-06-172-3/+50
|\ | | | | | | Change-Id: I5b08aa9b496a02268f0ac1ee264c839e6c65d412
| * Avoid duplicate call to destroyv5.12.9Fabian Kosmale2020-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixing the lifetime issue in emitDestruction led to a new issue: Setting linkedContext to nullptr before refCount has been incremented and invalidate has run can lead to calling destroy twice on the same pointer, and as a result to a use-after-free crash. Amends 0c8e51705ac0bb86c4b123ecd30a11b41fd50b24 Task-number: QTBUG-84095 Change-Id: Ib2ce76a45977217d0fb0f0e3ce06b24858b90468 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit a84537a159e9d3b9b66a9a0d4fdf3b1b9d3168d6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Add changes file for Qt 5.12.9Antti Kokko2020-06-091-0/+46
| | | | | | | | | | Change-Id: I49cf28dfc9be5511f16d4675f56c3759867e4981 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Prevent premature child destructionFabian Kosmale2020-06-051-2/+3
|/ | | | | | | | | | | | | | | | QQmlContextData::emitDestruction suffers from the fact that code can delete objects while emitDestruction is ongoing. Notably, the sequence child->emitDestruction can trigger a call to a->destruction (of one of child's attached components), which then can indirectly delete both child and child->nextChild (for instance, when a StackView gets cleared). We prevent this by using QQmlContextDataRef when iterating over the children, which keeps the child alive for the duration of the loop. Fixes: QTBUG-84095 Change-Id: I03a4e817904ba2735e1ffc15d509db95a1a4729e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 0c8e51705ac0bb86c4b123ecd30a11b41fd50b24)
* qquickitemgrabresult: Check effective window for visibilityKai Uwe Broulik2020-06-021-1/+6
| | | | | | | | | | | When using QQuickWidget, the quick scene is in an offscreen window which isn't visible, so grabToImage would always abort with "item's window is not visible". Checking the render window for the item fixes that. Task-number: QTBUG-55879 Change-Id: I58153e02e78623ba4ea6e7beec18a7503de7feeb Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 7c9a54907f44b7e30ceac1975edcfa7920ffafd8)
* Rephrase Chunk::sortIntoBins() for more clarityUlf Hermann2020-06-021-4/+7
| | | | | | | | | | | | | | Assigning -1 to a quintptr so that it later overflows in another place when adding 1 warrants a comment. Also, assert against i overflowing the bitmaps. This way coverity might also understand what we are doing. Coverity-Id: 175402 Change-Id: I212110cbb784f89b1865bd0c0cc775c08cd40c04 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 1c928f65ab9c7a495f84943ba1264acb4dbca0b8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Prettify QV4_SHOW_BYTECODE output for JS classesUlf Hermann2020-06-021-11/+12
| | | | | | | | | | | Drop all the double spaces, force a line break after each class, and avoid converting empty strings to utf8. Coverity-Id: 190711 Change-Id: I789291e257aeac97c2a931bfc604f453c39906eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 512fde525ea5972bbae2796d6b2054fd370a5275) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't return a pointer to a local in QObjectWrapper::getQmlProperty()Ulf Hermann2020-06-021-1/+1
| | | | | | | | | | | | | findProperty() can optionally create the property on the fly. We store the result on the stack. In that case we can figure out that the property exists, but we cannot return its value. This is OK, as we do the same in the default case below. Coverity-Id: 193545 Change-Id: I3a87fc6f577807e2daf74eeacd2aab61f40aefc8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 7645c8e0f88a83d021f0a327617189b7772b14eb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve polish loop detection and diagnosticsJan Arve Sæther2020-05-262-7/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing warning was pretty much useless since it would only warn after having looped INT_MAX times. In addition, it didn't actually detect if polish() was called from within updatePolish(). Instead, the counting is changed to be strictly more correct: The counter is now only increased when polish() is called within the updatePolish(). It will reset back to 1 if that does not occur. Effectively, the counter will reflect how many consecutive polish loops we have processed. This patch will show diagnostics after having reached 1000 consecutive polish loops. It will only warn for the next 5 items in order to not be too verbose...(most likely they will be the same 5 items). If the counter reaches 100,000, we break out of the loop: This might be important for e.g. CI runs so that the process can actually terminate in order to get some useful diagnostics. Note that the item that calls polish() within updatePolish() doesn't have to be the same item as updatePolish() was called on. We also want to track these since there might be several items working in tandem to create the loop. With this change it will now give the following output: main.qml:10:5: QML Row: possible QQuickItem::polish() loop main.qml:10:5: QML Row: Row called polish() inside updatePolish() of Row (This is when Row called polish() from within its own updatePolish()) Fixes: QTBUG-40220 Task-number: QTBUG-83856 Change-Id: Ib8a7242908082c70d8cf71efbbe1fa148dbfada0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 1c8bce285522e0dcfd13fe6c514f4756d6d6438c) Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix handling of QQuickViewPrivate::rootUlf Hermann2020-05-252-23/+33
| | | | | | | | | | | | | | | | | | QQuickView is supposed to own the root item and shall also track it for external deletion. Therefore, when we assign a new root item we need to delete the old one. There is no point in setting a QPointer to nullptr after deleting it. It will do that by itself. When we fail to assign a new item, we should _not_ automatically delete the new one. Calling code typically does not expect the argument to a set* call to be deleted right away. Rather, return a boolean indicating whether we have successfully set the root object. This can then be used to get rid of the object if necessary. Coverity-Id: 218729 Change-Id: I79ed37d22d304bcc6d4e3c956b83a65fe157dfe0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit a64ee3a2481499f856d0f3fbc697399e0df1e8f8) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix failing assertion in the GC with JITSimon Hausmann2020-05-221-0/+2
| | | | | | | | | | | | | | | | | | | | Commit d4edf441257b7e5782a6c25802d821647ffcba45 fixed the issue for architectures where the return value register overlaps with the accumulator register and thus clobbers it (x86-64, x86). The issue however persisted on ARMv7 (and in theory also ARMv8). Further investigation suggests that another source of clobbering of the accumulator register may be the caller of the JIT generated code itself, since we never explicitly initialize the register. So if one of the first byte code instructions is the creation of a call context or ConvertThisToObject - anything that saves the register to the JS stack frame - then we could end up with the GC trying to mark a value that contains garbage (or looks like a managed, typically). Change-Id: I719e189c3314c85adb23fb2ab2a0acf26a418d4e Task-number: QTBUG-83384 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit d12c2716064e1dc6013c175952a34146a69aa507)
* Fix failing assertion in the GC with the JITSimon Hausmann2020-05-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit db3dd029d7cd911712102efd5ea71868494f9f6f introduced the saving of the accumulator register on the JS stack in more situations. This unveiled another bug: When the physical ACC register contains garbage, we may end up saving it on the stack and thus making it visible to the GC. That one may trip with the infamous Q_ASSERT(m->inUse()) assertion failing when the value looks like a managed pointer but in fact isn't. So the question is: How can garbage end up in the physical ACC register? Thanks to a detailed bug report from David Faure, KDE's ktexteditor kateindenttest (testCstyle:comma6 in particular) triggered this situation when run with aggressive GC, where the prologue of a generated constructor function started with two instructions CreateCallContext ConvertThisToObject The first instruction is a call into the run-time with CallResultDestination::Ignore - it's a "void" call. The second instruction starts with STORE_ACC and also ends up allocating memory, triggering the GC when run with aggressive mode enabled. The problem here is the ::Ignore option for the return value. It means that the ReturnValueRegister is clobbered and may contain anything. If the ReturnValueRegister is the same as the AccumulatorRegister, then the STORE_ACC call later will end up writing "garbage" into the JS stack. As a remedy, this patch treats the ::Ignore case special and loads undefined into the ACC when the return value register and the ACC register are the same. Change-Id: I82c7a3456125f9c87e83abb9eb54465106873560 Task-number: QTBUG-83384 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit d4edf441257b7e5782a6c25802d821647ffcba45)
* JIT: Don't pass the heap object in the return value registerUlf Hermann2020-05-222-3/+6
| | | | | | | | | | | | | | | | | | | We have two variants for call destination results: Ignore or store in accumulator. The accumulator may be the same as the return value register. Therefore, when side stepping this mechanism and leaving the result in the return value register, we should have realized that we have to save/load the accumulator. We didn't and left the accumulator clobbered. A further fix actually clears the accumulator proactively after each call with Ignore if it is the same as the return value register. Now we don't get our result anymore in this case. To fix this, just use the accumulator register, declare that we do so, and save/load it around the call. Change-Id: I65fe4f7430ebfc419863b329bcd66a95875e5ffb Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix warning -Wxor-used-as-powMårten Nordheim2020-05-181-1/+1
| | | | | | | | | | | | Thanks clang 10 warning: result of '2^53' is 55; did you mean '1LL << 53'? [-Wxor-used-as-pow] Change-Id: I164ba4ac12d4ae9dbd6651d50b9f5d2c8928d049 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 50cd8cf97aa89a48a9fbaaeb2515e529e66c7d43)
* Check in even more places for exceptionsFabian Kosmale2020-05-184-3/+8
| | | | | | | | | | Amends commit 4c5ed04e64ea9ac0038ae30e1189cfe745b29bd9 Task-number: QTBUG-83384 Change-Id: I0918c27dfa73dff83cbf0f58b41ce8620dff8a0a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit f31a2dc6fc713ee06ea7a9ba45c3ceaace7d735d) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Ask rendering thread to release resources when window is closedDamien Caliste2020-04-301-0/+8
| | | | | | | | | | | | | | | | | | | If the close event is accepted, the close handler in QWindow will destroy the underlying platform window without notifying the QSGRenderer attribute windowManager. This may cause a race condition if the renderer is a QSGThreadedRenderLoop because the platform window may be deleted while the thread is using it. Correct this issue by notifying the QSGRenderer on a close event using the hide() method (which is supposed to release the resources according to documentation). Fixes: QTBUG-82474 Task-number: QTBUG-73929 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit ca66d4fc23706a0f4ecfc4031f37cdd19facd836) Change-Id: Ia8d76a4471270ca90af7c201e7ad4477609b9c36
* Bump versionAlexandru Croitor2020-04-221-1/+1
| | | | Change-Id: I996530246190ba8767d3c57547a4c9b09df1e11b
* Blacklist tst_qquicktextedit::hAlignVisual on SLESFabian Kosmale2020-04-161-0/+2
| | | | | | Task-number: QTBUG-76719 Change-Id: I0979134b8a8fe8f8460a13ef1338991126537413 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Merge remote-tracking branch 'origin/5.12.8' into 5.12Qt Forward Merge Bot2020-04-142-2/+46
|\ | | | | | | Change-Id: I064b346257bd24160f5b54770b2ee6ed6075e22d
| * Add changes file for Qt 5.12.8v5.12.8Antti Kokko2020-03-181-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | + ddeffeed1d933b6513f18533a9186e9f472da117 Remove shadereffect dependency from shapes + 03df41fbcdb6e1ae3d0792d5b7806e5335b58794 QML list property: Avoid crash if contained object is deleted + d5b6cf62be82727deff279f1b61b8ed238e3a214 Bump version + e9b4fac4e1765ea8789b17948a0a22fad7db50c0 Fix some ListView bugs related to snapping when it had a header + 0a155d14578d01bfe02fa9383745e04bfa1e5648 QV4MM: Fix crash caused by MarkStack overflow + cbd4456c9db70afda6c8408be7e5da800889d169 Fix warning about non-relative paths in qmldir files Change-Id: Ib245030ae96cdbd8143450283300e937fd951474 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Check that value type exists before creating wrapperFabian Kosmale2020-03-161-2/+10
| | | | | | | | | | | | | | Fixes: QTBUG-82843 Change-Id: I1ea4a52b33e7d318525e63346eab46ecf7a8fec0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 5bcb2ff883f9f8ceb42ed6de298aa3036d6413b3)
* | ArrayPrototype::method_filter: Check for exception after callbackUlf Hermann2020-04-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | If there was an exception we cannot assume the returned value holds anything sensible. Also, we should immediately return. (cherry-picked from commit 31d05c6734057bed56ac783d4f9d03d3c2ecbcbb) Fixes: QTBUG-81581 Change-Id: I822c204c476e05d6de78124b66ab2f939ca38ffd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | V4: Check for exceptions before we use the result of a JS callUlf Hermann2020-04-0816-42/+99
| | | | | | | | | | | | | | | | | | If the call resulted in an exception the return value is undefined. (cherry-picked from commit 4c5ed04e64ea9ac0038ae30e1189cfe745b29bd9) Task-number: QTBUG-81581 Change-Id: Ibfdd5e1229cf5437f270232d3b1a91308adeec72 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix QQuickMouseArea getting stuck in pressed state when hiding in pressFrederik Gladhorn2020-04-023-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 78c1fcbc49f56463064eef738a475d9018357b24 we stopped giving the exclusive grab to hidden or disabled items which is good. But the change did not take into consideration how mouse area handles its internal state. As a simple example: A mouse area that would set itself hiding in the press handler, would continue to have d->pressed == true, which means it would not react to any future press events. The fix is to let mouse area check in its change handler whether it has become invisible. The test also checks that enabled behaves the same way. There is no action needed, since mouse area does completely custom handling of enabled (maybe something to fix in Qt 6), disabling a mouse area doesn't disable its children for example, it doesn't invoke QQuickItem::setEnabled at all. Due to this circumventing the common behavior, by chance disabling a mouse area in the on pressed handler works. Fixes: QTBUG-74987 Change-Id: Idb8499b3e5bcb744fbba203fdea5c46695bd5077 (cherry picked from commit 8ace780b5aa298e3c01903bfd57f766a42209191) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Check that animation still existsFabian Kosmale2020-04-023-1/+49
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-76749 Change-Id: Ie5eed240e8190a7297f71f5e40870a007e737d1d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 732b63ed0cd38feebd17978abde2843eddd2b7b2) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Fix signal emission order for zero-duration animationsJan Arve Saether2020-04-024-8/+83
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The order for non-zero-duration animations are: * started() * runningChanged(true) * stopped() * runningChanged(false) * finished() This patch tries to ensure that zero-duration animations have the same signal emission order. The problem was that when setRunning(true) was called on zero-duration animation, it would call itself (setRunning(false)) lower in the call stack in order to immediately stop again. This had the implication that we could emit stopped() even before started() was emitted (since the recursive call to setRunning(false) would actually complete before the ancestor stack frame setRunning(true) was completed) To fix this we emit started() *before* we call start() on the animationInstance. There is still a bug in that runningChanged(true) is still not emitted for a zero-duration animation, but this patch should improve the current behavior in the sense that stopped() is not emitted _before_ started(). Task-number: QTBUG-48193 Change-Id: Ic2bc85e648e6746f6a058e2e9136515e7fdb6192 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 8e0711cafd7e78c6e5d77fdda6be91135a355cd1) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix warning about non-relative paths in qmldir filesSimon Hausmann2020-02-181-1/+1
| | | | | | | | | | | | | Permit the use of resource urls in qmldir files to allow for the use-case of a plugin including its .qml files in resources and optionally compiling them ahead of time. When the resources are bundled in the plugin, qmlplugindump might or might not work. Task-number: QTBUG-48809 Change-Id: Icb331c7575f26316b5c2bcc604b9c6d793977a9f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit f15c2c22cb677677ccf8aacb2603fcf774d13584)
* QV4MM: Fix crash caused by MarkStack overflowFabian Kosmale2020-02-174-1/+57
| | | | | | | | | | | | | | | MemoryManager::collectFromJSStack did push to the mark stack without checking if there is actually still space available. To fix this, we now drain the stack once we hit the limit. The test case is a slightly modified version compared to the reported one, removing one loop. This was required as our regular expression does not throw an exception when there are too many capture groups. However, to trigger the bug, looping was not actually necessary. (cherry-picked from commit e72b032cc1c5a8a07a99fc6522a692c36f369abc) Change-Id: I4d00865f25a989c380f4f5b221f4068c80b71d2b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix some ListView bugs related to snapping when it had a headerJan Arve Sæther2020-01-313-15/+817
| | | | | | | | | | | | | | | | Most bugs were related to the PullBackHeader header positining mode, for instance the old code did not take into consideration that for the PullBackHeader it was sometimes not sufficient to scroll the view. The header also had to be scrolled independently from the view: We achieve this by hooking on to the same timeline that is used for scrolling the view. (This way, both animations are synchronized, and they start and end at the same time). Change-Id: I75708c0fd8d4741032c04ad9ee144d7a49cf3359 Fixes: QTBUG-76362 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 01660fbb67c39c74b2e1eeae1e3d1b97c8886cdb)
* Merge remote-tracking branch 'origin/5.12.7' into 5.12Qt Forward Merge Bot2020-01-311-0/+41
|\ | | | | | | Change-Id: I6a7e59c3f2c9f7e5bd0b384b2d2c5e5ddc599ee0
| * 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>
* | Bump versionAlexandru Croitor2020-01-281-1/+1
| |
* | QML list property: Avoid crash if contained object is deletedFabian Kosmale2020-01-284-10/+67
| | | | | | | | | | | | | | Task-number: QTBUG-81123 Change-Id: I3dd1a42e444f817722368cd268c2f987a99fbf1c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit e5570eecd3a4fc61020d28699169707a2c1f5dc9)