From ecf5c67ffb3c7b2004fea5f4a6e4d5a2b3a8cd85 Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 20 Jan 2024 03:03:58 +0100 Subject: [PATCH] outsource lib --- package/contents/ui/lib/helper.js | 22 ++++++++++++++++++++++ package/contents/ui/main.qml | 6 ++++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 package/contents/ui/lib/helper.js diff --git a/package/contents/ui/lib/helper.js b/package/contents/ui/lib/helper.js new file mode 100644 index 0000000..72c6094 --- /dev/null +++ b/package/contents/ui/lib/helper.js @@ -0,0 +1,22 @@ +function batteryColor(batteryPercent) { + const colors = [ + '#f00', '#e21c00', '#c83800', '#a50', '#8d7100', + '#718d00', '#6fa100', '#5c8000', '#498000', '#080' + ]; + let color; + switch(batteryPercent) { + case -1: color = "green"; break; + case -2: color = "red"; break; + default: color = colors[~~(batteryPercent / 10 + 0.5)]; break; + } + return color; +} + +function batteryLevel(batteryPercent) { + if(batteryPercent == -1) + return "charging"; + else if(batteryPercent == -2) + return "not connected"; + else + return batteryPercent + "%"; +} diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index ff7a122..89c9fe7 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -4,6 +4,8 @@ import org.kde.plasma.plasmoid 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import org.kde.kirigami 2.14 as Kirigami +import "./lib/helper.js" as Helper + Item { id: main @@ -39,7 +41,7 @@ Item { color: "transparent" border.color: PlasmaCore.Theme.textColor radius: 4 - Plasmoid.toolTipMainText: "battery level: " + batteryLevel() + Plasmoid.toolTipMainText: "battery level: " + Helper.batteryLevel(batteryPercent) Plasmoid.toolTipSubText: "polling rate: " + pollingrate + " seconds" Item { @@ -49,7 +51,7 @@ Item { anchors.left: parent.left anchors.top: parent.top anchors.bottom: parent.bottom - color: batteryColor() + color: Helper.batteryColor(batteryPercent) width: parent.width * Math.max(0, Math.min(batteryPercent, 100)) / 100 } Kirigami.Icon { // headphones icon