nova-shell/shell/services/ScreenshotService.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] || "";
}
}