blob: 3382615af0363f30d06a3ea76cedf21c69d7d308 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import "root:/services"
import "root:/utils"
import Quickshell.Io
import QtQuick
Image {
id: root
property string path
property string hash
readonly property string cachePath: `${Paths.imagecache}/${hash}@${width}x${height}.png`.slice(7)
asynchronous: true
cache: false
fillMode: Image.PreserveAspectCrop
sourceSize.width: width
sourceSize.height: height
onPathChanged: {
shaProc.signal(9);
shaProc.path = path.replace("file://", "");
shaProc.running = true;
}
onCachePathChanged: {
if (hash)
source = cachePath;
}
onStatusChanged: {
if (source == cachePath && status === Image.Error)
source = path;
else if (source == path && status === Image.Ready) {
Paths.mkdir(Paths.imagecache);
const grabPath = cachePath;
grabToImage(res => res.saveToFile(grabPath));
}
}
Process {
id: shaProc
property string path
command: ["sha256sum", path]
stdout: SplitParser {
onRead: data => root.hash = data.split(" ")[0]
}
}
}
|