I'm making a snapshot (via a ShaderEffectSource
with live: false
) of an Item, but I'm sometimes (1 cases in 200) getting a blank snapshot. I'm making the snapshot based on a signal like this:
Image {
onStatusChanged: {
if (status == Image.Ready) {
snapshotter.makeSnapshot();
}
}
}
This is just as an overall context. I won't post a testcase for now because it's a big app and I haven't yet isolated a testcase. That might be material for a future question.
So I'm not asking "where's the bug in my code" yet. Instead I have a simple question that I think may help me fix the bug:
Can I be notified when a Item has finished repainting?
Rationale: Maybe when I get status == Image.Ready
, the Image has merely loaded and not yet painted the loaded data into the offscreen surface. So if my desired signal exists, I could hook onto it instead of hooking onto Image.statusChanged
.
Note: I could implement my own NotifyingImage
component that works like Image
but additionally exposes a repainted
signal. But I'd like to know if there's a built-in way.
Related question: "Get notified when QQuickItem will need updating". But there the asker is satisfied with knowing when the item data is updated, and I'm asking about a repainted
signal, which is something that happens later than what he's asking for.