make optional

This commit is contained in:
Benjamin Palko 2025-09-04 14:56:05 -04:00
parent cb6080d5d8
commit 13dc798565

View file

@ -1,15 +1,14 @@
import qs.components
import qs.config
import qs.constants
import qs.widgets
import QtQuick
import QtQuick.Layouts
import Quickshell.Services.UPower
StyledButton {
id: root
property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery)
property bool isCritical: laptopBattery.percentage < 0.10
property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery) ?? null
property bool isCritical: laptopBattery?.percentage < 0.10
contentItem: RowLayout {
spacing: 4
@ -26,16 +25,16 @@ StyledButton {
}
font.pixelSize: 16
text: {
if (root.laptopBattery.state == UPowerDeviceState.Charging) {
if (root.laptopBattery?.state == UPowerDeviceState.Charging) {
return Icons.batteryCharging;
}
if (root.isCritical) {
return Icons.batteryWarning;
}
if (root.laptopBattery.percentage < 0.33) {
if (root.laptopBattery?.percentage < 0.33) {
return Icons.batteryLow;
}
if (root.laptopBattery.percentage < 0.66) {
if (root.laptopBattery?.percentage < 0.66) {
return Icons.batteryMedium;
}
return Icons.batteryFull;
@ -53,7 +52,7 @@ StyledButton {
}
return Theme.palette.basecontent;
}
text: `${(root.laptopBattery.percentage.toFixed(2) * 100)}%`
text: `${(root.laptopBattery?.percentage.toFixed(2) * 100)}%`
}
}
visible: laptopBattery