diff --git a/modules/bar/Battery.qml b/modules/bar/Battery.qml index cbfa866..1e90bc2 100644 --- a/modules/bar/Battery.qml +++ b/modules/bar/Battery.qml @@ -8,80 +8,76 @@ import qs import qs.reusables import qs.settings -Loader { - id: batLoader - active: UPower.displayDevice.isLaptopBattery +Rectangle { + id: container + visible: UPower.displayDevice.isLaptopBattery + radius: implicitHeight / 2 + color: Colors.surfaceContainer + anchors.verticalCenter: parent.verticalCenter + implicitWidth: UPower.displayDevice.isLaptopBattery ? root.implicitWidth + 20 : 0 + implicitHeight: Settings.config.barHeight - 10 + Item { + id: root + anchors.centerIn: parent - sourceComponent: Rectangle { - id: container - radius: implicitHeight / 2 - color: Colors.surfaceContainer - anchors.verticalCenter: parent.verticalCenter - implicitWidth: UPower.displayDevice.isLaptopBattery ? root.implicitWidth + 20 : 0 - implicitHeight: Settings.config.barHeight - 10 - Item { - id: root + property bool frame1: UPower.displayDevice.percentage <= 0.16 + property bool frame2: UPower.displayDevice.percentage < 0.32 + property bool frame3: UPower.displayDevice.percentage < 0.48 + property bool frame4: UPower.displayDevice.percentage < 0.74 + property bool frame5: UPower.displayDevice.percentage < 0.90 + property bool frame6: UPower.displayDevice.percentage <= 1 + + function getBatteryIcon() { + if (UPower.displayDevice.state == UPowerDeviceState.Charging) { + return "battery_android_frame_bolt"; + } + if (frame1) { + return "battery_android_frame_1"; + } + if (frame2) { + return "battery_android_frame_2"; + } + if (frame3) { + return "battery_android_frame_3"; + } + if (frame4) { + return "battery_android_frame_4"; + } + if (frame5) { + return "battery_android_frame_5"; + } + if (frame6) { + return "battery_android_frame_full"; + } + } + function getProfileIcon() { + if (PowerProfiles.profile.toString() == "2") { + return "power-profile-performance-symbolic"; + } + if (PowerProfiles.profile.toString() == "1") { + return "power-profile-balanced-symbolic"; + } + if (PowerProfiles.profile.toString() == "0") { + return "power-profile-power-saver-symbolic"; + } + } + + implicitWidth: batRow.width + implicitHeight: Settings.config.barHeight + + RowLayout { + id: batRow anchors.centerIn: parent + height: parent.height + spacing: 5 + CustomText { + id: batText - property bool frame1: UPower.displayDevice.percentage <= 0.16 - property bool frame2: UPower.displayDevice.percentage < 0.32 - property bool frame3: UPower.displayDevice.percentage < 0.48 - property bool frame4: UPower.displayDevice.percentage < 0.74 - property bool frame5: UPower.displayDevice.percentage < 0.90 - property bool frame6: UPower.displayDevice.percentage <= 1 - - function getBatteryIcon() { - if (UPower.displayDevice.state == UPowerDeviceState.Charging) { - return "battery_android_frame_bolt"; - } - if (frame1) { - return "battery_android_frame_1"; - } - if (frame2) { - return "battery_android_frame_2"; - } - if (frame3) { - return "battery_android_frame_3"; - } - if (frame4) { - return "battery_android_frame_4"; - } - if (frame5) { - return "battery_android_frame_5"; - } - if (frame6) { - return "battery_android_frame_full"; - } + text: Math.round(UPower.displayDevice.percentage * 100) + "%" } - function getProfileIcon() { - if (PowerProfiles.profile.toString() == "2") { - return "power-profile-performance-symbolic"; - } - if (PowerProfiles.profile.toString() == "1") { - return "power-profile-balanced-symbolic"; - } - if (PowerProfiles.profile.toString() == "0") { - return "power-profile-power-saver-symbolic"; - } - } - - implicitWidth: batRow.width - implicitHeight: Settings.config.barHeight - - RowLayout { - id: batRow - anchors.centerIn: parent - height: parent.height - spacing: 5 - CustomText { - id: batText - - text: Math.round(UPower.displayDevice.percentage * 100) + "%" - } - CustomIcon { - id: batIcon - text: root.getBatteryIcon() - } + CustomIcon { + id: batIcon + text: root.getBatteryIcon() } } }