From 646605cc9b6b3f364453a0b573c1333f098fc122 Mon Sep 17 00:00:00 2001 From: Zacharias-Brohn Date: Wed, 11 Mar 2026 19:47:14 +0100 Subject: [PATCH] slight changes --- Helpers/SystemUsage.qml | 12 +++- Modules/Resource.qml | 125 +++++++++++++++++++++++----------------- Modules/Resources.qml | 9 ++- 3 files changed, 89 insertions(+), 57 deletions(-) diff --git a/Helpers/SystemUsage.qml b/Helpers/SystemUsage.qml index 5ced856..e613060 100644 --- a/Helpers/SystemUsage.qml +++ b/Helpers/SystemUsage.qml @@ -79,12 +79,22 @@ Singleton { onTriggered: { stat.reload(); meminfo.reload(); - storage.running = true; if (root.gpuType === "GENERIC") gpuUsage.running = true; } } + Timer { + interval: 60000 * 120 + repeat: true + running: true + triggeredOnStart: true + + onTriggered: { + storage.running = true; + } + } + Timer { interval: Config.dashboard.resourceUpdateInterval * 5 repeat: true diff --git a/Modules/Resource.qml b/Modules/Resource.qml index e26085c..89b16a4 100644 --- a/Modules/Resource.qml +++ b/Modules/Resource.qml @@ -4,7 +4,7 @@ import QtQuick.Shapes import qs.Components import qs.Config -Item { +RowLayout { id: root property color accentColor: warning ? DynamicColors.palette.m3error : mainColor @@ -20,12 +20,7 @@ Item { property int warningThreshold: 80 clip: true - height: implicitHeight - implicitHeight: 34 - implicitWidth: 34 percentage: 0 - visible: width > 0 && height > 0 - width: implicitWidth Behavior on animatedPercentage { Anim { @@ -36,58 +31,80 @@ Item { Component.onCompleted: animatedPercentage = percentage onPercentageChanged: animatedPercentage = percentage - Canvas { - id: gaugeCanvas - - anchors.centerIn: parent - height: width - width: Math.min(parent.width, parent.height) - - Component.onCompleted: requestPaint() - onPaint: { - const ctx = getContext("2d"); - ctx.reset(); - const cx = width / 2; - const cy = (height / 2) + 1; - const radius = (Math.min(width, height) - 12) / 2; - const lineWidth = 3; - ctx.beginPath(); - ctx.arc(cx, cy, radius, root.arcStartAngle, root.arcStartAngle + root.arcSweep); - ctx.lineWidth = lineWidth; - ctx.lineCap = "round"; - ctx.strokeStyle = DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 2); - ctx.stroke(); - if (root.animatedPercentage > 0) { - ctx.beginPath(); - ctx.arc(cx, cy, radius, root.arcStartAngle, root.arcStartAngle + root.arcSweep * root.animatedPercentage); - ctx.lineWidth = lineWidth; - ctx.lineCap = "round"; - ctx.strokeStyle = root.accentColor; - ctx.stroke(); - } - } - - Connections { - function onAnimatedPercentageChanged() { - gaugeCanvas.requestPaint(); - } - - target: root - } - - Connections { - function onPaletteChanged() { - gaugeCanvas.requestPaint(); - } - - target: DynamicColors - } - } + // Canvas { + // id: gaugeCanvas + // + // anchors.centerIn: parent + // height: width + // width: Math.min(parent.width, parent.height) + // + // Component.onCompleted: requestPaint() + // onPaint: { + // const ctx = getContext("2d"); + // ctx.reset(); + // const cx = width / 2; + // const cy = (height / 2) + 1; + // const radius = (Math.min(width, height) - 12) / 2; + // const lineWidth = 3; + // ctx.beginPath(); + // ctx.arc(cx, cy, radius, root.arcStartAngle, root.arcStartAngle + root.arcSweep); + // ctx.lineWidth = lineWidth; + // ctx.lineCap = "round"; + // ctx.strokeStyle = DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 2); + // ctx.stroke(); + // if (root.animatedPercentage > 0) { + // ctx.beginPath(); + // ctx.arc(cx, cy, radius, root.arcStartAngle, root.arcStartAngle + root.arcSweep * root.animatedPercentage); + // ctx.lineWidth = lineWidth; + // ctx.lineCap = "round"; + // ctx.strokeStyle = root.accentColor; + // ctx.stroke(); + // } + // } + // + // Connections { + // function onAnimatedPercentageChanged() { + // gaugeCanvas.requestPaint(); + // } + // + // target: root + // } + // + // Connections { + // function onPaletteChanged() { + // gaugeCanvas.requestPaint(); + // } + // + // target: DynamicColors + // } + // } MaterialIcon { - anchors.centerIn: parent + id: icon + color: DynamicColors.palette.m3onSurface font.pointSize: 12 text: root.icon } + + CustomClippingRect { + Layout.preferredHeight: root.height + Layout.preferredWidth: 5 + color: DynamicColors.layer(DynamicColors.palette.m3surfaceContainerHigh, 2) + radius: Appearance.rounding.full + + CustomRect { + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + color: root.mainColor + implicitHeight: root.percentage * parent.height + radius: implicitHeight / 2 + + Behavior on implicitHeight { + Anim { + } + } + } + } } diff --git a/Modules/Resources.qml b/Modules/Resources.qml index 66742c3..e90100a 100644 --- a/Modules/Resources.qml +++ b/Modules/Resources.qml @@ -16,7 +16,7 @@ CustomRect { clip: true color: DynamicColors.tPalette.m3surfaceContainer implicitHeight: Config.barConfig.height + Appearance.padding.smallest * 2 - implicitWidth: rowLayout.implicitWidth + Appearance.padding.small * 2 + implicitWidth: rowLayout.implicitWidth + Appearance.padding.normal * 2 radius: height / 2 StateLayer { @@ -27,7 +27,8 @@ CustomRect { id: rowLayout anchors.centerIn: parent - spacing: 0 + implicitHeight: root.implicitHeight + spacing: Appearance.spacing.smaller Ref { service: SystemUsage @@ -35,6 +36,7 @@ CustomRect { Resource { Layout.alignment: Qt.AlignVCenter + Layout.fillHeight: true icon: "memory" mainColor: DynamicColors.palette.m3primary percentage: SystemUsage.cpuPerc @@ -42,6 +44,7 @@ CustomRect { } Resource { + Layout.fillHeight: true icon: "memory_alt" mainColor: DynamicColors.palette.m3secondary percentage: SystemUsage.memPerc @@ -49,12 +52,14 @@ CustomRect { } Resource { + Layout.fillHeight: true icon: "gamepad" mainColor: DynamicColors.palette.m3tertiary percentage: SystemUsage.gpuPerc } Resource { + Layout.fillHeight: true icon: "developer_board" mainColor: DynamicColors.palette.m3primary percentage: SystemUsage.gpuMemUsed