lux-shell/modules/bar/components/bluetooth/PairedDevice.qml
2025-09-06 22:31:17 -04:00

62 lines
1.5 KiB
QML

pragma ComponentBehavior: Bound
import qs.components
import qs.config
import qs.widgets
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Bluetooth
import Quickshell.Widgets
StyledRectangle {
id: root
required property BluetoothDevice modelData
RowLayout {
id: row
spacing: 8
Loader {
active: root.modelData?.icon != undefined
sourceComponent: IconImage {
implicitSize: 22
source: Quickshell.iconPath(root.modelData.icon, "device-support-unknown-symbolic")
}
}
StyledText {
text: root.modelData.deviceName
}
RowLayout {
Layout.alignment: Qt.AlignRight
StyledButton {
hoverEnabled: root.modelData.state == BluetoothDeviceState.Disconnected
text: 'Connect'
onClicked: {
if (!hoverEnabled) {
return;
}
root.modelData.connect();
}
}
StyledButton {
hoverEnabled: root.modelData.state == BluetoothDeviceState.Disconnected
text: 'Unpair'
palette.button: hovered ? Styling.theme.error : Styling.theme.base100
onClicked: {
if (!hoverEnabled) {
return;
}
root.modelData.forget();
}
}
}
}
}