diff --git a/modules/bar/components/tray/Tray.qml b/modules/bar/components/tray/Tray.qml index 0ffd814..89eacf9 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 + model: SystemTray.items.values Loader { id: loader diff --git a/modules/bar/components/tray/TrayItem.qml b/modules/bar/components/tray/TrayItem.qml index 1e05ff7..4a27057 100644 --- a/modules/bar/components/tray/TrayItem.qml +++ b/modules/bar/components/tray/TrayItem.qml @@ -5,12 +5,11 @@ import QtQuick import Quickshell import Quickshell.Services.SystemTray import Quickshell.Widgets -import "menu/" StyledIconButton { id: root - property SystemTrayItem trayItem + required property SystemTrayItem trayItem onClicked: menu.toggle() @@ -28,7 +27,7 @@ StyledIconButton { } } - Menu { + TrayMenu { id: menu anchor.item: root diff --git a/modules/bar/components/tray/TrayMenu.qml b/modules/bar/components/tray/TrayMenu.qml new file mode 100644 index 0000000..88137e2 --- /dev/null +++ b/modules/bar/components/tray/TrayMenu.qml @@ -0,0 +1,49 @@ +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 deleted file mode 100644 index db54cfc..0000000 --- a/modules/bar/components/tray/menu/Menu.qml +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 056b3ba..0000000 --- a/modules/bar/components/tray/menu/MenuItem.qml +++ /dev/null @@ -1,12 +0,0 @@ -import qs.components -import Quickshell - -StyledButton { - id: root - - property QsMenuEntry menuEntry - - text: root.menuEntry.text - - onClicked: menuEntry.triggered() -}