From 60deccddf0dca955de035a9f096fd47abe8d1786 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:07:11 +1000 Subject: winfo: add no active client placeholders Also change close button to kill --- modules/windowinfo/Details.qml | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'modules/windowinfo/Details.qml') diff --git a/modules/windowinfo/Details.qml b/modules/windowinfo/Details.qml index b103711..7b9f9b8 100644 --- a/modules/windowinfo/Details.qml +++ b/modules/windowinfo/Details.qml @@ -14,7 +14,7 @@ ColumnLayout { Label { Layout.topMargin: Appearance.padding.large * 2 - text: Hyprland.activeClient.title + text: Hyprland.activeClient?.title ?? "No active client" wrapMode: Text.WrapAtWordBoundaryOrAnywhere font.pointSize: Appearance.font.size.large @@ -22,7 +22,7 @@ ColumnLayout { } Label { - text: Hyprland.activeClient.wmClass + text: Hyprland.activeClient?.wmClass ?? "No active client" color: Colours.palette.m3tertiary font.pointSize: Appearance.font.size.larger @@ -41,74 +41,78 @@ ColumnLayout { Detail { icon: "location_on" - text: qsTr("Address: %1").arg(Hyprland.activeClient.address) + text: qsTr("Address: %1").arg(Hyprland.activeClient?.address ?? "unknown") color: Colours.palette.m3primary } Detail { icon: "location_searching" - text: qsTr("Position: %1, %2").arg(Hyprland.activeClient.x).arg(Hyprland.activeClient.y) + text: qsTr("Position: %1, %2").arg(Hyprland.activeClient?.x ?? -1).arg(Hyprland.activeClient?.y ?? -1) } Detail { icon: "resize" - text: qsTr("Size: %1 x %2").arg(Hyprland.activeClient.width).arg(Hyprland.activeClient.height) + text: qsTr("Size: %1 x %2").arg(Hyprland.activeClient?.width ?? -1).arg(Hyprland.activeClient?.height ?? -1) color: Colours.palette.m3tertiary } Detail { icon: "workspaces" - text: qsTr("Workspace: %1 (%2)").arg(Hyprland.activeClient.workspace.name).arg(Hyprland.activeClient.workspace.id) + text: qsTr("Workspace: %1 (%2)").arg(Hyprland.activeClient?.workspace.name ?? -1).arg(Hyprland.activeClient?.workspace.id ?? -1) color: Colours.palette.m3secondary } Detail { icon: "desktop_windows" text: { - const mon = Hyprland.activeClient.monitor; - return qsTr("Monitor: %1 (%2) at %3, %4").arg(mon.name).arg(mon.id).arg(mon.x).arg(mon.y); + const mon = Hyprland.activeClient?.monitor; + if (mon) + return qsTr("Monitor: %1 (%2) at %3, %4").arg(mon.name).arg(mon.id).arg(mon.x).arg(mon.y); + return qsTr("Monitor: unknown"); } } Detail { icon: "page_header" - text: qsTr("Initial title: %1").arg(Hyprland.activeClient.initialTitle) + text: qsTr("Initial title: %1").arg(Hyprland.activeClient?.initialTitle ?? "unknown") color: Colours.palette.m3tertiary } Detail { icon: "category" - text: qsTr("Initial class: %1").arg(Hyprland.activeClient.initialClass) + text: qsTr("Initial class: %1").arg(Hyprland.activeClient?.initialClass ?? "unknown") } Detail { icon: "account_tree" - text: qsTr("Process id: %1").arg(Hyprland.activeClient.pid) + text: qsTr("Process id: %1").arg(Hyprland.activeClient?.pid ?? -1) color: Colours.palette.m3primary } Detail { icon: "picture_in_picture_center" - text: qsTr("Floating: %1").arg(Hyprland.activeClient.floating ? "yes" : "no") + text: qsTr("Floating: %1").arg(Hyprland.activeClient?.floating ? "yes" : "no") color: Colours.palette.m3secondary } Detail { icon: "gradient" - text: qsTr("Xwayland: %1").arg(Hyprland.activeClient.lastIpcObject.xwayland ? "yes" : "no") + text: qsTr("Xwayland: %1").arg(Hyprland.activeClient?.lastIpcObject.xwayland ? "yes" : "no") } Detail { icon: "keep" - text: qsTr("Pinned: %1").arg(Hyprland.activeClient.lastIpcObject.pinned ? "yes" : "no") + text: qsTr("Pinned: %1").arg(Hyprland.activeClient?.lastIpcObject.pinned ? "yes" : "no") color: Colours.palette.m3secondary } Detail { icon: "fullscreen" text: { - const fs = Hyprland.activeClient.fullscreen; - return qsTr("Fullscreen state: %1").arg(fs == 0 ? "off" : fs == 1 ? "maximised" : "on"); + const fs = Hyprland.activeClient?.fullscreen; + if (fs) + return qsTr("Fullscreen state: %1").arg(fs == 0 ? "off" : fs == 1 ? "maximised" : "on"); + return qsTr("Fullscreen state: unknown"); } color: Colours.palette.m3tertiary } -- cgit v1.2.3-freya