summaryrefslogtreecommitdiff
path: root/components/images/CachingIconImage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'components/images/CachingIconImage.qml')
-rw-r--r--components/images/CachingIconImage.qml31
1 files changed, 31 insertions, 0 deletions
diff --git a/components/images/CachingIconImage.qml b/components/images/CachingIconImage.qml
new file mode 100644
index 0000000..522a947
--- /dev/null
+++ b/components/images/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
+ }
+}