diff --git a/components/StyledDrawer.qml b/components/StyledDrawer.qml index a87f8fd..f0816fd 100644 --- a/components/StyledDrawer.qml +++ b/components/StyledDrawer.qml @@ -1,29 +1,11 @@ import qs.config import QtQuick import QtQuick.Controls -import Quickshell -import Quickshell.Hyprland -import Quickshell.Widgets Drawer { id: control dim: false - property bool focused: false - - onVisibleChanged: { - focused = visible; - } - - HyprlandFocusGrab { - active: control.focused - windows: [QsWindow.window] - onCleared: { - control.focused = false; - } - } - - background: ClippingWrapperRectangle { - margin: 4 + background: Rectangle { Component.onCompleted: { if (control.edge == Qt.TopEdge) { radius = 8; @@ -38,24 +20,6 @@ Drawer { topRightRadius = 8; } } - color: Styling.theme.base300 - - Rectangle { - Component.onCompleted: { - if (control.edge == Qt.TopEdge) { - radius = 8; - } else if (control.edge == Qt.LeftEdge) { - topRightRadius = 8; - bottomRightRadius = 8; - } else if (control.edge == Qt.RightEdge) { - topLeftRadius = 8; - bottomLeftRadius = 8; - } else if (control.edge == Qt.BottomEdge) { - topLeftRadius = 8; - topRightRadius = 8; - } - } - color: Styling.theme.base100 - } + color: Styling.theme.base100 } } diff --git a/modules/bar/components/tray/Tray.qml b/modules/bar/components/tray/Tray.qml index 89eacf9..0ffd814 100644 --- a/modules/bar/components/tray/Tray.qml +++ b/modules/bar/components/tray/Tray.qml @@ -10,7 +10,7 @@ RowLayout { spacing: 4 Repeater { - model: SystemTray.items.values + model: SystemTray.items Loader { id: loader diff --git a/modules/bar/components/tray/TrayItem.qml b/modules/bar/components/tray/TrayItem.qml index 4a27057..1e05ff7 100644 --- a/modules/bar/components/tray/TrayItem.qml +++ b/modules/bar/components/tray/TrayItem.qml @@ -5,11 +5,12 @@ import QtQuick import Quickshell import Quickshell.Services.SystemTray import Quickshell.Widgets +import "menu/" StyledIconButton { id: root - required property SystemTrayItem trayItem + property SystemTrayItem trayItem onClicked: menu.toggle() @@ -27,7 +28,7 @@ StyledIconButton { } } - TrayMenu { + Menu { id: menu anchor.item: root diff --git a/modules/bar/components/tray/TrayMenu.qml b/modules/bar/components/tray/TrayMenu.qml deleted file mode 100644 index 88137e2..0000000 --- a/modules/bar/components/tray/TrayMenu.qml +++ /dev/null @@ -1,49 +0,0 @@ -pragma ComponentBehavior: Bound - -import qs.components -import qs.config -import QtQuick -import QtQuick.Layouts -import Quickshell -import Quickshell.Widgets - -StyledPopupWindow { - id: window - - required property QsMenuOpener menuOpener - - content: ColumnLayout { - spacing: 4 - Repeater { - model: window.menuOpener.children.values - delegate: Loader { - id: loader - required property QsMenuEntry modelData - - active: true - - Component.onCompleted: { - console.log(modelData.text); - } - - Layout.fillWidth: true - Layout.minimumWidth: 160 - - sourceComponent: modelData.isSeparator ? menuSeperator : menuItem - property Component menuSeperator: WrapperItem { - margin: 4 - Rectangle { - implicitHeight: 2 - - color: Styling.theme.base200 - } - } - property Component menuItem: StyledButton { - text: loader.modelData.text - - onClicked: loader.modelData.triggered() - } - } - } - } -} diff --git a/modules/bar/components/tray/menu/Menu.qml b/modules/bar/components/tray/menu/Menu.qml new file mode 100644 index 0000000..db54cfc --- /dev/null +++ b/modules/bar/components/tray/menu/Menu.qml @@ -0,0 +1,39 @@ +pragma ComponentBehavior: Bound + +import qs.components +import qs.config +import QtQuick +import QtQuick.Layouts +import Quickshell + +StyledPopupWindow { + id: window + + property QsMenuOpener menuOpener + + content: ColumnLayout { + spacing: 8 + Repeater { + model: window.menuOpener.children + delegate: Loader { + id: loader + required property QsMenuEntry modelData + + active: true + + Layout.fillWidth: true + Layout.minimumWidth: 160 + + sourceComponent: modelData.isSeparator ? menuSeperator : menuItem + property Component menuSeperator: Rectangle { + implicitHeight: 2 + + color: Styling.theme.base100 + } + property Component menuItem: MenuItem { + menuEntry: loader.modelData + } + } + } + } +} diff --git a/modules/bar/components/tray/menu/MenuItem.qml b/modules/bar/components/tray/menu/MenuItem.qml new file mode 100644 index 0000000..056b3ba --- /dev/null +++ b/modules/bar/components/tray/menu/MenuItem.qml @@ -0,0 +1,12 @@ +import qs.components +import Quickshell + +StyledButton { + id: root + + property QsMenuEntry menuEntry + + text: root.menuEntry.text + + onClicked: menuEntry.triggered() +} diff --git a/modules/drawers/dashboard/Dashboard.qml b/modules/drawers/dashboard/Dashboard.qml index 5af5285..5dea95e 100644 --- a/modules/drawers/dashboard/Dashboard.qml +++ b/modules/drawers/dashboard/Dashboard.qml @@ -12,10 +12,6 @@ StyledDrawer { visible: Visibility.dashboard - onFocusedChanged: { - Visibility.dashboard = focused; - } - WrapperItem { margin: 32 ColumnLayout {