Browse Source

qml: fix null access due to `Qt.callLater`

fix warning "TypeError: Value is null and could not be converted to an object
(exception occurred during delayed function evaluation)"

When using a lambda with `callLater`, QML doesn't check with that used objects
exists, this can be problematic during the destruction phase. Using an object
function fix the issue (observed with Qt 6.2 and 6.8)
pull/191/head
Pierre Lamot 9 months ago
committed by Steve Lhomme
parent
commit
810ae8d0bc
  1. 16
      modules/gui/qt/widgets/qml/FadingEdge.qml

16
modules/gui/qt/widgets/qml/FadingEdge.qml

@ -199,20 +199,24 @@ Item {
onBeginningFadeSizeChanged: {
if (!beginningFadeBehavior.enabled) {
Qt.callLater(() => {
beginningFadeBehavior.enabled = true
})
Qt.callLater(effect._enableBeginningFadeBehavior)
}
}
onEndFadeSizeChanged: {
if (!endFadeBehavior.enabled) {
Qt.callLater(() => {
endFadeBehavior.enabled = true
})
Qt.callLater(effect._enableEndFadeBehavior)
}
}
function _enableBeginningFadeBehavior() {
beginningFadeBehavior.enabled = true
}
function _enableEndFadeBehavior() {
endFadeBehavior.enabled = true
}
Component.onCompleted: {
console.assert(shaderEffectSource.shaderEffect === null)
shaderEffectSource.shaderEffect = this

Loading…
Cancel
Save