81 lines
1.6 KiB
QML
81 lines
1.6 KiB
QML
import Quickshell.Services.UPower
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import ZShell.Config
|
|
import qs.Modules.Bar.Components.Common
|
|
import qs.Components
|
|
import qs.Helpers
|
|
|
|
Item {
|
|
id: root
|
|
|
|
readonly property Item currentItem: batteryIconLoader?.item ?? peripheralIconLoader?.item ?? upowerIconLoader.item
|
|
|
|
implicitHeight: currentItem?.implicitHeight ?? 0
|
|
implicitWidth: currentItem?.implicitWidth ?? 0
|
|
|
|
Behavior on Layout.preferredHeight {
|
|
Anim {
|
|
}
|
|
}
|
|
Behavior on Layout.preferredWidth {
|
|
Anim {
|
|
}
|
|
}
|
|
Behavior on opacity {
|
|
Anim {
|
|
}
|
|
}
|
|
Behavior on scale {
|
|
Anim {
|
|
}
|
|
}
|
|
|
|
Component.onCompleted: Battery.startDaemon()
|
|
|
|
Loader {
|
|
id: batteryIconLoader
|
|
|
|
active: Battery.isLaptop
|
|
anchors.centerIn: parent
|
|
|
|
sourceComponent: BatteryIcon {
|
|
devState: Battery.deviceStateString.toLowerCase()
|
|
percentage: Battery.currentPerc
|
|
}
|
|
}
|
|
|
|
Loader {
|
|
id: peripheralIconLoader
|
|
|
|
active: (Battery.lowestPeripheral?.isPresent ?? false) && !batteryIconLoader.active
|
|
anchors.centerIn: parent
|
|
|
|
sourceComponent: BatteryIcon {
|
|
devState: Battery.lowestPeripheral?.state ?? ""
|
|
percentage: Battery.lowestPeripheral?.percentage ?? 0
|
|
}
|
|
}
|
|
|
|
Loader {
|
|
id: upowerIconLoader
|
|
|
|
active: !batteryIconLoader.active && !peripheralIconLoader.active
|
|
anchors.centerIn: parent
|
|
|
|
sourceComponent: MaterialIcon {
|
|
Layout.alignment: Qt.AlignVCenter
|
|
animate: true
|
|
fill: 1
|
|
font.pointSize: Tokens.font.size.larger
|
|
text: {
|
|
if (PowerProfiles.profile === PowerProfile.PowerSaver)
|
|
return "energy_savings_leaf";
|
|
if (PowerProfiles.profile === PowerProfile.Performance)
|
|
return "bolt";
|
|
return "balance";
|
|
}
|
|
}
|
|
}
|
|
}
|