Ignore stale image picker scans
This commit is contained in:
@@ -284,12 +284,25 @@ Item {
|
|||||||
selectedIndex = 0
|
selectedIndex = 0
|
||||||
imagesLoaded = false
|
imagesLoaded = false
|
||||||
opened = false
|
opened = false
|
||||||
loadImagesProc.requestSerial = requestSerial
|
startImageScan(requestSerial, imageDirs)
|
||||||
loadImagesProc.running = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
property var imageArray: []
|
property var imageArray: []
|
||||||
|
|
||||||
|
function startImageScan(serial, dirs) {
|
||||||
|
if (loadImagesProc.running) {
|
||||||
|
loadImagesProc.queuedSerial = serial
|
||||||
|
loadImagesProc.queuedDirs = dirs
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
loadImagesProc.activeSerial = serial
|
||||||
|
loadImagesProc.queuedSerial = 0
|
||||||
|
loadImagesProc.queuedDirs = ""
|
||||||
|
loadImagesProc.command = [root.scriptPath("image-picker-list.sh"), dirs]
|
||||||
|
loadImagesProc.running = true
|
||||||
|
}
|
||||||
|
|
||||||
function indexForSelectedImage(images) {
|
function indexForSelectedImage(images) {
|
||||||
for (var i = 0; i < images.length; i++) {
|
for (var i = 0; i < images.length; i++) {
|
||||||
if (images[i].filePath === selectedImage)
|
if (images[i].filePath === selectedImage)
|
||||||
@@ -305,15 +318,25 @@ Item {
|
|||||||
|
|
||||||
Process {
|
Process {
|
||||||
id: loadImagesProc
|
id: loadImagesProc
|
||||||
property int requestSerial: 0
|
property int activeSerial: 0
|
||||||
command: [root.scriptPath("image-picker-list.sh"), root.imageDirs]
|
property int queuedSerial: 0
|
||||||
|
property string queuedDirs: ""
|
||||||
stdout: StdioCollector {
|
stdout: StdioCollector {
|
||||||
waitForEnd: true
|
waitForEnd: true
|
||||||
onStreamFinished: {
|
onStreamFinished: {
|
||||||
if (loadImagesProc.requestSerial === root.requestSerial)
|
if (loadImagesProc.activeSerial === root.requestSerial)
|
||||||
root.loadRows(String(text || ""), true)
|
root.loadRows(String(text || ""), true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
onExited: {
|
||||||
|
var serial = queuedSerial
|
||||||
|
var dirs = queuedDirs
|
||||||
|
activeSerial = 0
|
||||||
|
queuedSerial = 0
|
||||||
|
queuedDirs = ""
|
||||||
|
if (serial > 0 && serial === root.requestSerial)
|
||||||
|
root.startImageScan(serial, dirs)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lifecycle hooks invoked by omarchy-shell summon/hide. shell.summon(id,
|
// Lifecycle hooks invoked by omarchy-shell summon/hide. shell.summon(id,
|
||||||
|
|||||||
Reference in New Issue
Block a user