pragma Singleton import QtQuick QtObject { id: root // Screen name -> in-memory image URL from grabToImage property var screenshots: ({}) property int _pending: 0 // Keep references to prevent garbage collection of the image data property var _results: ({}) signal captureRequested signal captureComplete function capture(screenCount) { _pending = screenCount; if (_pending === 0) { captureComplete(); return; } captureRequested(); } function store(screenName, result) { const s = Object.assign({}, screenshots); s[screenName] = result.url; screenshots = s; const r = Object.assign({}, _results); r[screenName] = result; _results = r; _pending--; if (_pending <= 0) captureComplete(); } function get(screenName) { return screenshots[screenName] || ""; } }