filedialog: cache thumbnails

Much faster loading
This commit is contained in:
2 * r + 2 * t 2025-07-22 22:28:10 +10:00
parent 8155e5b873
commit 89c7739fdb
3 changed files with 32 additions and 4 deletions

View file

@ -0,0 +1,31 @@
import QtQuick
Item {
property alias asynchronous: image.asynchronous
property alias status: image.status
property alias mipmap: image.mipmap
property alias backer: image
property real implicitSize
readonly property real actualSize: Math.min(width, height)
property url source
onSourceChanged: {
if (source?.toString().startsWith("image://icon/"))
// Directly skip the path prop and treat like a normal Image component
image.source = source;
else if (source)
image.path = source;
}
implicitWidth: implicitSize
implicitHeight: implicitSize
CachingImage {
id: image
anchors.fill: parent
fillMode: Image.PreserveAspectFit
}
}

View file

@ -1,4 +1,3 @@
import qs.services
import qs.utils
import Quickshell.Io
import QtQuick
@ -11,7 +10,6 @@ Image {
readonly property string cachePath: `${Paths.stringify(Paths.imagecache)}/${hash}@${width}x${height}.png`
asynchronous: true
cache: false
fillMode: Image.PreserveAspectCrop
sourceSize.width: width
sourceSize.height: height

View file

@ -6,7 +6,6 @@ import qs.config
import qs.utils
import Quickshell
import Quickshell.Io
import Quickshell.Widgets
import QtQuick
import QtQuick.Layouts
import QtQuick.Effects
@ -140,7 +139,7 @@ Item {
}
}
IconImage {
CachingIconImage {
id: icon
anchors.horizontalCenter: parent.horizontalCenter