Files
noctalia-shell/Widgets/NImageRounded.qml
T

49 lines
1.1 KiB
QML

import QtQuick
import QtQuick.Effects
import Quickshell
import Quickshell.Widgets
import qs.Commons
Item {
id: root
property real radius: 0
property string imagePath: ""
property string fallbackIcon: ""
property real fallbackIconSize: Style.fontSizeXXL
property real borderWidth: 0
property color borderColor: Color.transparent
property int imageFillMode: Image.PreserveAspectCrop
readonly property bool showFallback: (fallbackIcon !== undefined && fallbackIcon !== "") && (imagePath === undefined || imagePath === "")
signal statusChanged(int status)
ClippingRectangle {
anchors.fill: parent
color: Color.transparent
radius: root.radius
border.color: root.borderColor
border.width: root.borderWidth
Image {
anchors.fill: parent
visible: !showFallback
source: imagePath
mipmap: true
smooth: true
asynchronous: true
antialiasing: true
fillMode: root.imageFillMode
onStatusChanged: root.statusChanged(status)
}
NIcon {
anchors.centerIn: parent
visible: showFallback
icon: fallbackIcon
pointSize: fallbackIconSize
}
}
}