forked from Shinonome/dots-hyprland
quickshell: fix qml null safety and monitor property errors
This commit is contained in:
@@ -28,12 +28,12 @@ Scope {
|
|||||||
|
|
||||||
// Hide when fullscreen
|
// Hide when fullscreen
|
||||||
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
|
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
|
||||||
property bool focusingThisMonitor: HyprlandData.activeWorkspace.monitor == monitor.name
|
property bool focusingThisMonitor: HyprlandData.activeWorkspace?.monitor == monitor?.name
|
||||||
visible: !(activeWindow?.fullscreen && activeWindow?.activated && focusingThisMonitor)
|
visible: !(activeWindow?.fullscreen && activeWindow?.activated && focusingThisMonitor)
|
||||||
|
|
||||||
// Workspaces
|
// Workspaces
|
||||||
property HyprlandMonitor monitor: Hyprland.monitorFor(modelData)
|
property HyprlandMonitor monitor: Hyprland.monitorFor(modelData)
|
||||||
property list<var> relevantWindows: HyprlandData.windowList.filter(win => win.monitor == monitor.id && win.workspace.id >= 0).sort((a, b) => a.workspace.id - b.workspace.id)
|
property list<var> relevantWindows: HyprlandData.windowList.filter(win => win.monitor == monitor?.id && win.workspace.id >= 0).sort((a, b) => a.workspace.id - b.workspace.id)
|
||||||
property int firstWorkspaceId: relevantWindows[0]?.workspace.id || 1
|
property int firstWorkspaceId: relevantWindows[0]?.workspace.id || 1
|
||||||
property int lastWorkspaceId: relevantWindows[relevantWindows.length - 1]?.workspace.id || 10
|
property int lastWorkspaceId: relevantWindows[relevantWindows.length - 1]?.workspace.id || 10
|
||||||
// Wallpaper
|
// Wallpaper
|
||||||
@@ -157,7 +157,7 @@ Scope {
|
|||||||
const lower = Math.floor(bgRoot.firstWorkspaceId / chunkSize) * chunkSize;
|
const lower = Math.floor(bgRoot.firstWorkspaceId / chunkSize) * chunkSize;
|
||||||
const upper = Math.ceil(bgRoot.lastWorkspaceId / chunkSize) * chunkSize;
|
const upper = Math.ceil(bgRoot.lastWorkspaceId / chunkSize) * chunkSize;
|
||||||
const range = upper - lower;
|
const range = upper - lower;
|
||||||
return (Config.options.background.parallax.enableWorkspace ? ((bgRoot.monitor.activeWorkspace.id - lower) / range) : 0.5)
|
return (Config.options.background.parallax.enableWorkspace ? ((bgRoot.monitor?.activeWorkspace?.id ?? 1 - lower) / range) : 0.5)
|
||||||
+ (0.15 * GlobalStates.sidebarRightOpen * Config.options.background.parallax.enableSidebar)
|
+ (0.15 * GlobalStates.sidebarRightOpen * Config.options.background.parallax.enableSidebar)
|
||||||
- (0.15 * GlobalStates.sidebarLeftOpen * Config.options.background.parallax.enableSidebar)
|
- (0.15 * GlobalStates.sidebarLeftOpen * Config.options.background.parallax.enableSidebar)
|
||||||
}
|
}
|
||||||
@@ -199,7 +199,7 @@ Scope {
|
|||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: clockColumn
|
id: clockColumn
|
||||||
anchors.centerIn: wallpaper
|
anchors.centerIn: parent
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ Item {
|
|||||||
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
|
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
|
||||||
|
|
||||||
property string activeWindowAddress: `0x${activeWindow?.HyprlandToplevel?.address}`
|
property string activeWindowAddress: `0x${activeWindow?.HyprlandToplevel?.address}`
|
||||||
property bool focusingThisMonitor: HyprlandData.activeWorkspace.monitor == monitor.name
|
property bool focusingThisMonitor: HyprlandData.activeWorkspace?.monitor == monitor?.name
|
||||||
property var biggestWindow: HyprlandData.biggestWindowForWorkspace(HyprlandData.monitors[root.monitor.id]?.activeWorkspace.id)
|
property var biggestWindow: HyprlandData.biggestWindowForWorkspace(HyprlandData.monitors[root.monitor?.id]?.activeWorkspace.id)
|
||||||
|
|
||||||
implicitWidth: colLayout.implicitWidth
|
implicitWidth: colLayout.implicitWidth
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Item {
|
|||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
text: root.focusingThisMonitor && root.activeWindow?.activated && root.biggestWindow ?
|
text: root.focusingThisMonitor && root.activeWindow?.activated && root.biggestWindow ?
|
||||||
root.activeWindow?.title :
|
root.activeWindow?.title :
|
||||||
(root.biggestWindow?.title) ?? `${Translation.tr("Workspace")} ${monitor.activeWorkspace?.id}`
|
(root.biggestWindow?.title) ?? `${Translation.tr("Workspace")} ${monitor?.activeWorkspace?.id ?? 1}`
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ MouseArea {
|
|||||||
|
|
||||||
MaterialSymbol {
|
MaterialSymbol {
|
||||||
fill: 0
|
fill: 0
|
||||||
text: WeatherIcons.codeToName[Weather.data.wCode]
|
text: WeatherIcons.codeToName[Weather.data?.wCode] ?? "question_mark"
|
||||||
iconSize: Appearance.font.pixelSize.large
|
iconSize: Appearance.font.pixelSize.large
|
||||||
color: Appearance.colors.colOnLayer1
|
color: Appearance.colors.colOnLayer1
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
@@ -31,7 +31,7 @@ MouseArea {
|
|||||||
visible: true
|
visible: true
|
||||||
font.pixelSize: Appearance.font.pixelSize.small
|
font.pixelSize: Appearance.font.pixelSize.small
|
||||||
color: Appearance.colors.colOnLayer1
|
color: Appearance.colors.colOnLayer1
|
||||||
text: Weather.data.temp
|
text: Weather.data?.temp ?? "--°"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ Scope {
|
|||||||
required property var modelData
|
required property var modelData
|
||||||
property string searchingText: ""
|
property string searchingText: ""
|
||||||
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(root.screen)
|
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(root.screen)
|
||||||
property bool monitorIsFocused: (Hyprland.focusedMonitor?.id == monitor.id)
|
property bool monitorIsFocused: (Hyprland.focusedMonitor?.id == monitor?.id)
|
||||||
screen: modelData
|
screen: modelData
|
||||||
visible: GlobalStates.overviewOpen
|
visible: GlobalStates.overviewOpen
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Item {
|
|||||||
property var windows: HyprlandData.windowList
|
property var windows: HyprlandData.windowList
|
||||||
property var windowByAddress: HyprlandData.windowByAddress
|
property var windowByAddress: HyprlandData.windowByAddress
|
||||||
property var windowAddresses: HyprlandData.addresses
|
property var windowAddresses: HyprlandData.addresses
|
||||||
property var monitorData: HyprlandData.monitors.find(m => m.id === root.monitor.id)
|
property var monitorData: HyprlandData.monitors.find(m => m.id === root.monitor?.id)
|
||||||
property real scale: Config.options.overview.scale
|
property real scale: Config.options.overview.scale
|
||||||
property color activeBorderColor: Appearance.colors.colSecondary
|
property color activeBorderColor: Appearance.colors.colSecondary
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ Item {
|
|||||||
const address = `0x${toplevel.HyprlandToplevel.address}`
|
const address = `0x${toplevel.HyprlandToplevel.address}`
|
||||||
var win = windowByAddress[address]
|
var win = windowByAddress[address]
|
||||||
const inWorkspaceGroup = (root.workspaceGroup * root.workspacesShown < win?.workspace?.id && win?.workspace?.id <= (root.workspaceGroup + 1) * root.workspacesShown)
|
const inWorkspaceGroup = (root.workspaceGroup * root.workspacesShown < win?.workspace?.id && win?.workspace?.id <= (root.workspaceGroup + 1) * root.workspacesShown)
|
||||||
const inMonitor = root.monitor.id === win.monitor
|
const inMonitor = root.monitor?.id === win.monitor
|
||||||
return inWorkspaceGroup && inMonitor;
|
return inWorkspaceGroup && inMonitor;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"messages": [],
|
||||||
|
"created": "2024-01-01T00:00:00Z",
|
||||||
|
"updated": "2024-01-01T00:00:00Z",
|
||||||
|
"title": "Default Chat",
|
||||||
|
"id": "default"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user