From aaf2aba0f835e74b74f066ae0465e9706de4be46 Mon Sep 17 00:00:00 2001 From: quadbyte Date: Sun, 10 Aug 2025 13:49:27 -0400 Subject: [PATCH] Everything in Bar --- Modules/Background/Background.qml | 2 +- Modules/Background/Overview.qml | 2 +- Modules/Bar/Bar.qml | 195 ++++++++++++++++-------------- Modules/Bar/Bars.qml | 10 -- shell.qml | 2 +- 5 files changed, 108 insertions(+), 103 deletions(-) delete mode 100644 Modules/Bar/Bars.qml diff --git a/Modules/Background/Background.qml b/Modules/Background/Background.qml index f81f79b..055cfcc 100644 --- a/Modules/Background/Background.qml +++ b/Modules/Background/Background.qml @@ -6,7 +6,7 @@ import qs.Services Variants { model: Quickshell.screens - PanelWindow { + delegate: PanelWindow { required property ShellScreen modelData property string wallpaperSource: Qt.resolvedUrl( "../../Assets/Tests/wallpaper.png") diff --git a/Modules/Background/Overview.qml b/Modules/Background/Overview.qml index 2d9cea8..438e612 100644 --- a/Modules/Background/Overview.qml +++ b/Modules/Background/Overview.qml @@ -7,7 +7,7 @@ import qs.Services Variants { model: Quickshell.screens - PanelWindow { + delegate: PanelWindow { required property ShellScreen modelData property string wallpaperSource: Qt.resolvedUrl( "../../Assets/Tests/wallpaper.png") diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index 5b91d8d..9f3669d 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -1,104 +1,119 @@ import QtQuick -import Quickshell import QtQuick.Controls import QtQuick.Layouts -import qs.Widgets +import Quickshell import qs.Services +import qs.Widgets -PanelWindow { - id: root +Variants { + model: Quickshell.screens - readonly property real scaling: Scaling.scale(screen) - property var modelData + delegate: PanelWindow { + id: root - screen: modelData - implicitHeight: Style.barHeight * scaling - color: "transparent" - visible: Settings.data.bar.monitors.includes(modelData.name) - || (Settings.data.bar.monitors.length === 0) + required property ShellScreen modelData + readonly property real scaling: Scaling.scale(screen) - anchors { - top: true - left: true - right: true - } + screen: modelData + implicitHeight: Style.barHeight * scaling + color: "transparent" + visible: Settings.data.bar.monitors.includes(modelData.name) || (Settings.data.bar.monitors.length === 0) - Item { - anchors.fill: parent - clip: true - - // Background fill - Rectangle { - id: bar - anchors.fill: parent - color: Colors.backgroundPrimary - layer.enabled: true - } - - Row { - id: leftSection - height: parent.height - anchors.left: parent.left - anchors.leftMargin: Style.marginSmall * scaling - anchors.verticalCenter: parent.verticalCenter - spacing: Style.marginSmall * scaling - - NText { - text: screen.name - anchors.verticalCenter: parent.verticalCenter - } - } - - Row { - id: centerSection - height: parent.height - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - spacing: Style.marginSmall * scaling - - Workspace {} - } - - Row { - id: rightSection - height: parent.height - anchors.right: bar.right - anchors.rightMargin: Style.marginSmall * scaling - anchors.verticalCenter: bar.verticalCenter - spacing: Style.marginSmall * scaling - - Clock { - anchors.verticalCenter: parent.verticalCenter - } - - NIconButton { - id: demoPanelToggle - icon: "experiment" - anchors.verticalCenter: parent.verticalCenter - onClicked: function () { - demoPanel.isLoaded = !demoPanel.isLoaded + anchors { + top: true + left: true + right: true } - } - NIconButton { - id: sidePanelToggle - icon: "widgets" - anchors.verticalCenter: parent.verticalCenter - onClicked: function () { - // Map this button's center to the screen and open the side panel below it - const localCenterX = width / 2 - const localCenterY = height / 2 - const globalPoint = mapToItem(null, localCenterX, localCenterY) - if (sidePanel.isLoaded) { - sidePanel.isLoaded = false - } else if (sidePanel.openAt) { - sidePanel.openAt(globalPoint.x, screen) - } else { - // Fallback: toggle if API unavailable - sidePanel.isLoaded = true - } + Item { + anchors.fill: parent + clip: true + + // Background fill + Rectangle { + id: bar + + anchors.fill: parent + color: Colors.backgroundPrimary + layer.enabled: true + } + + Row { + id: leftSection + + height: parent.height + anchors.left: parent.left + anchors.leftMargin: Style.marginSmall * scaling + anchors.verticalCenter: parent.verticalCenter + spacing: Style.marginSmall * scaling + + NText { + text: screen.name + anchors.verticalCenter: parent.verticalCenter + } + + } + + Row { + id: centerSection + + height: parent.height + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + spacing: Style.marginSmall * scaling + + Workspace { + } + + } + + Row { + id: rightSection + + height: parent.height + anchors.right: bar.right + anchors.rightMargin: Style.marginSmall * scaling + anchors.verticalCenter: bar.verticalCenter + spacing: Style.marginSmall * scaling + + Clock { + anchors.verticalCenter: parent.verticalCenter + } + + NIconButton { + id: demoPanelToggle + + icon: "experiment" + anchors.verticalCenter: parent.verticalCenter + onClicked: function() { + demoPanel.isLoaded = !demoPanel.isLoaded; + } + } + + NIconButton { + id: sidePanelToggle + + icon: "widgets" + anchors.verticalCenter: parent.verticalCenter + onClicked: function() { + // Map this button's center to the screen and open the side panel below it + const localCenterX = width / 2; + const localCenterY = height / 2; + const globalPoint = mapToItem(null, localCenterX, localCenterY); + if (sidePanel.isLoaded) + sidePanel.isLoaded = false; + else if (sidePanel.openAt) + sidePanel.openAt(globalPoint.x, screen); + else + // Fallback: toggle if API unavailable + sidePanel.isLoaded = true; + } + } + + } + } - } + } - } + } diff --git a/Modules/Bar/Bars.qml b/Modules/Bar/Bars.qml deleted file mode 100644 index 0b549e4..0000000 --- a/Modules/Bar/Bars.qml +++ /dev/null @@ -1,10 +0,0 @@ -import Quickshell -import qs.Modules.Bar - -Variants { - model: Quickshell.screens - - delegate: Bar { - modelData: item - } -} diff --git a/shell.qml b/shell.qml index 54db807..8d4748b 100644 --- a/shell.qml +++ b/shell.qml @@ -17,7 +17,7 @@ ShellRoot { Background {} Overview {} ScreenCorners {} - Bars {} + Bar {} DemoPanel { id: demoPanel