diff options
| -rw-r--r-- | widgets/CachingIconImage.qml | 31 | ||||
| -rw-r--r-- | widgets/CachingImage.qml | 2 | ||||
| -rw-r--r-- | widgets/filedialog/FolderContents.qml | 3 |
3 files changed, 32 insertions, 4 deletions
diff --git a/widgets/CachingIconImage.qml b/widgets/CachingIconImage.qml new file mode 100644 index 0000000..522a947 --- /dev/null +++ b/widgets/CachingIconImage.qml @@ -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 + } +} diff --git a/widgets/CachingImage.qml b/widgets/CachingImage.qml index c58ff51..1d42238 100644 --- a/widgets/CachingImage.qml +++ b/widgets/CachingImage.qml @@ -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 diff --git a/widgets/filedialog/FolderContents.qml b/widgets/filedialog/FolderContents.qml index 1881288..4a24ef5 100644 --- a/widgets/filedialog/FolderContents.qml +++ b/widgets/filedialog/FolderContents.qml @@ -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 |