1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 13:32:50 -05:00
Files
DankMaterialShell/quickshell/Modals/Greeter/GreeterDoctorResultItem.qml
2026-01-04 22:44:19 -05:00

110 lines
3.1 KiB
QML

import QtQuick
import qs.Common
import qs.Widgets
Rectangle {
id: root
property var resultData: null
readonly property string status: resultData?.status || "ok"
readonly property string statusIcon: {
switch (status) {
case "error":
return "error";
case "warn":
return "warning";
case "info":
return "info";
default:
return "check_circle";
}
}
readonly property color statusColor: {
switch (status) {
case "error":
return Theme.error;
case "warn":
return Theme.warning;
case "info":
return Theme.secondary;
default:
return Theme.success;
}
}
height: Math.round(Theme.fontSizeMedium * 3.4)
radius: Theme.cornerRadius
color: Theme.withAlpha(statusColor, 0.08)
DankIcon {
id: statusIcon
anchors.left: parent.left
anchors.leftMargin: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
name: root.statusIcon
size: Theme.iconSize - 4
color: root.statusColor
}
Column {
anchors.left: statusIcon.right
anchors.leftMargin: Theme.spacingS
anchors.right: categoryChip.visible ? categoryChip.left : (urlButton.visible ? urlButton.left : parent.right)
anchors.rightMargin: Theme.spacingS
anchors.verticalCenter: parent.verticalCenter
spacing: 1
StyledText {
width: parent.width
text: root.resultData?.name || ""
font.pixelSize: Theme.fontSizeSmall
font.weight: Font.Medium
color: Theme.surfaceText
elide: Text.ElideRight
}
StyledText {
width: parent.width
text: root.resultData?.message || ""
font.pixelSize: Theme.fontSizeSmall - 1
color: Theme.surfaceVariantText
elide: Text.ElideRight
visible: text.length > 0
}
}
Rectangle {
id: categoryChip
anchors.right: urlButton.visible ? urlButton.left : parent.right
anchors.rightMargin: urlButton.visible ? Theme.spacingXS : Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
height: Math.round(Theme.fontSizeSmall * 1.67)
width: categoryText.implicitWidth + Theme.spacingS
radius: Theme.spacingXS
color: Theme.surfaceContainerHighest
visible: !!(root.resultData?.category)
StyledText {
id: categoryText
anchors.centerIn: parent
text: root.resultData?.category || ""
font.pixelSize: Theme.fontSizeSmall - 2
color: Theme.surfaceVariantText
}
}
DankActionButton {
id: urlButton
anchors.right: parent.right
anchors.rightMargin: Theme.spacingM
anchors.verticalCenter: parent.verticalCenter
iconName: "open_in_new"
iconSize: Theme.iconSize - 6
buttonSize: 24
visible: !!(root.resultData?.url)
tooltipText: root.resultData?.url || ""
onClicked: Qt.openUrlExternally(root.resultData.url)
}
}