LazyMethod : Fix running idle callback without a valid Qt Widget #5914
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We sometimes have issues when creating UI with
PlugValueWidgets
that when they are cleaned up after setting a plug value, they may try to still set the value on the widget via theLazyMethod
idle callback even though the Qt widget is no longer around. By checking for a valid Qt widget as well here, we avoid instances in which the Gaffer widget is still around but the Qt widget has been cleaned up, which can cause issues when running the callback given that the Qt widget is the underlying widget for the Gaffer widget and one often relies on the other.This PR is more of a suggestion/discussion as well since, while I believe this approach makes sense, there may be some other things this can affect that I am not too sure about.
This an example of the error we have been seeing related to this issue:
Checklist