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