44 lines
962 B
QML
44 lines
962 B
QML
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] || "";
|
|
}
|
|
}
|