From e0b139d4afe566f57574fae15668ba297ed7334e Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Tue, 29 Jul 2025 17:54:31 +0800 Subject: chore: reorganize component rm: circularprogress as its unused --- bar/components/SimpleResource.qml | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 bar/components/SimpleResource.qml (limited to 'bar/components/SimpleResource.qml') diff --git a/bar/components/SimpleResource.qml b/bar/components/SimpleResource.qml new file mode 100644 index 0000000..818327d --- /dev/null +++ b/bar/components/SimpleResource.qml @@ -0,0 +1,63 @@ +import QtQuick +import Quickshell +import QtQuick.Layouts +import qs.config +import qs.components + +Item { + id: root + + // TODO: use https://quickshell.org/docs/master/types/Quickshell/PopupWindow/ for tooltip + + required property real value + required property string suffix // unit + required property string icon + property string altValue: value + property string altSuffix: suffix + property string altIcon: icon + property string text: root.value + root.suffix + property string altText: root.altValue + root.altSuffix + property real thresholdL1: 40 + property real thresholdL2: thresholdL1 * 1.5 + property real thresholdL3: thresholdL2 * 1.5 + property color thresholdColorL1: Colors.cyan + property color thresholdColorL2: Colors.yellow + property color thresholdColorL3: Colors.red + + property bool isAlt: false + + implicitWidth: layout.implicitWidth + implicitHeight: layout.implicitHeight + + RowLayout { + id: layout + + spacing: Bar.resourceIconTextSpacing + + Item { + Layout.fillWidth: true + } + + Icon { + text: !root.isAlt ? root.icon : root.altIcon + color: root.value < root.thresholdL1 ? Colors.foreground2 : root.value >= root.thresholdL3 ? root.thresholdColorL3 : root.value >= root.thresholdL2 ? root.thresholdColorL2 : root.thresholdColorL1 + } + IText { + animate: true + renderType: Text.CurveRendering // it's not static and is rapidly updated + text: !root.isAlt ? root.text : root.altText + color: root.value < root.thresholdL1 ? Colors.foreground1 : root.value >= root.thresholdL3 ? root.thresholdColorL3 : root.value >= root.thresholdL2 ? root.thresholdColorL2 : root.thresholdColorL1 + } + + Item { + Layout.fillWidth: true + } + } + MouseArea { + anchors.fill: parent + cursorShape: altValue != value ? Qt.PointingHandCursor : Qt.ArrowCursor + onPressed: { + root.isAlt = !root.isAlt; + } + } +} -- cgit v1.2.3