From c3e8127422c7439d9ddb07e3634c892abb7b53f4 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Wed, 9 Jul 2025 21:57:44 +1000 Subject: internal: pass around visibilities Instead of singleton Also for panels --- modules/bar/Bar.qml | 3 +++ modules/bar/components/Power.qml | 7 +++++-- modules/drawers/Drawers.qml | 1 + modules/drawers/Panels.qml | 5 +++-- modules/notifications/Content.qml | 7 +++---- modules/notifications/Wrapper.qml | 7 +++++++ 6 files changed, 22 insertions(+), 8 deletions(-) (limited to 'modules') diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index 9f5509b..5a8f598 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -11,6 +11,7 @@ Item { id: root required property ShellScreen screen + required property PersistentProperties visibilities required property BarPopouts.Wrapper popouts function checkPopout(y: real): void { @@ -169,6 +170,8 @@ Item { anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom anchors.bottomMargin: Appearance.padding.large + + visibilities: root.visibilities } } } diff --git a/modules/bar/components/Power.qml b/modules/bar/components/Power.qml index a870cb3..c74dd3c 100644 --- a/modules/bar/components/Power.qml +++ b/modules/bar/components/Power.qml @@ -4,6 +4,10 @@ import "root:/config" import Quickshell MaterialIcon { + id: root + + required property PersistentProperties visibilities + text: "power_settings_new" color: Colours.palette.m3error font.bold: true @@ -20,8 +24,7 @@ MaterialIcon { radius: Appearance.rounding.full function onClicked(): void { - const v = Visibilities.screens[QsWindow.window.screen]; - v.session = !v.session; + root.visibilities.session = !root.visibilities.session; } } } diff --git a/modules/drawers/Drawers.qml b/modules/drawers/Drawers.qml index 10cd86b..27088a4 100644 --- a/modules/drawers/Drawers.qml +++ b/modules/drawers/Drawers.qml @@ -135,6 +135,7 @@ Variants { id: bar screen: scope.modelData + visibilities: visibilities popouts: panels.popouts } } diff --git a/modules/drawers/Panels.qml b/modules/drawers/Panels.qml index 5b2229c..909fc9f 100644 --- a/modules/drawers/Panels.qml +++ b/modules/drawers/Panels.qml @@ -27,8 +27,6 @@ Item { anchors.margins: Config.border.thickness anchors.leftMargin: bar.implicitWidth - Component.onCompleted: Visibilities.panels[screen] = this - Osd.Wrapper { id: osd @@ -44,6 +42,9 @@ Item { Notifications.Wrapper { id: notifications + visibilities: root.visibilities + panel: root + anchors.top: parent.top anchors.right: parent.right } diff --git a/modules/notifications/Content.qml b/modules/notifications/Content.qml index 108f8d3..701e245 100644 --- a/modules/notifications/Content.qml +++ b/modules/notifications/Content.qml @@ -8,6 +8,8 @@ import QtQuick Item { id: root + required property PersistentProperties visibilities + required property Item panel readonly property int padding: Appearance.padding.large anchors.top: parent.top @@ -24,9 +26,6 @@ Item { for (let i = 0; i < count; i++) height += list.itemAtIndex(i)?.nonAnimHeight ?? 0; - const screen = QsWindow.window?.screen; - const visibilities = Visibilities.screens[screen]; - const panel = Visibilities.panels[screen]; if (visibilities && panel) { if (visibilities.osd) { const h = panel.osd.y - Config.border.rounding * 2; @@ -41,7 +40,7 @@ Item { } } - return Math.min((screen?.height ?? 0) - Config.border.thickness * 2, height + padding * 2); + return Math.min((QsWindow.window?.screen?.height ?? 0) - Config.border.thickness * 2, height + padding * 2); } ClippingWrapperRectangle { diff --git a/modules/notifications/Wrapper.qml b/modules/notifications/Wrapper.qml index 27b9219..12dedcf 100644 --- a/modules/notifications/Wrapper.qml +++ b/modules/notifications/Wrapper.qml @@ -1,14 +1,21 @@ import "root:/config" +import Quickshell import QtQuick Item { id: root + required property PersistentProperties visibilities + required property Item panel + visible: height > 0 implicitHeight: content.implicitHeight implicitWidth: content.implicitWidth Content { id: content + + visibilities: root.visibilities + panel: root.panel } } -- cgit v1.2.3-freya