diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modals/Greeter/GreeterDoctorResultItem.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/dms/Modals/Greeter/GreeterDoctorResultItem.qml | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modals/Greeter/GreeterDoctorResultItem.qml b/raveos-hyprland-theme/theme-data/dms/Modals/Greeter/GreeterDoctorResultItem.qml new file mode 100644 index 0000000..b15969a --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/Modals/Greeter/GreeterDoctorResultItem.qml @@ -0,0 +1,109 @@ +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) + } +} |