From b19fb316d9497795d412f7685b26c41855b95eef Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Mon, 25 Aug 2025 13:44:23 -0400 Subject: [PATCH] ArchUpdater: fixed CPU hogging --- Modules/ArchUpdaterPanel/ArchUpdaterPanel.qml | 16 +++------------- Services/ArchUpdaterService.qml | 16 ++++++++-------- Services/BarWidgetRegistry.qml | 10 +++++----- 3 files changed, 16 insertions(+), 26 deletions(-) diff --git a/Modules/ArchUpdaterPanel/ArchUpdaterPanel.qml b/Modules/ArchUpdaterPanel/ArchUpdaterPanel.qml index d89e511..7e0264e 100644 --- a/Modules/ArchUpdaterPanel/ArchUpdaterPanel.qml +++ b/Modules/ArchUpdaterPanel/ArchUpdaterPanel.qml @@ -13,19 +13,9 @@ NPanel { panelHeight: 500 * scaling panelAnchorRight: true - // Auto-refresh when service updates - Connections { - target: ArchUpdaterService - function onUpdatePackagesChanged() { - // Force UI update when packages change - if (root.visible) { - // Small delay to ensure data is fully updated - Qt.callLater(() => { - // Force a UI update by triggering a property change - ArchUpdaterService.updatePackages = ArchUpdaterService.updatePackages - }, 100) - } - } + // When the panel opens + onOpened: { + ArchUpdaterService.doPoll() } panelContent: Rectangle { diff --git a/Services/ArchUpdaterService.qml b/Services/ArchUpdaterService.qml index c5f250a..bfc4565 100644 --- a/Services/ArchUpdaterService.qml +++ b/Services/ArchUpdaterService.qml @@ -1,8 +1,9 @@ -/*pragma Singleton +pragma Singleton -import Quickshell import QtQuick +import Quickshell import Quickshell.Io +import qs.Commons Singleton { id: updateService @@ -15,20 +16,23 @@ Singleton { property int selectedPackagesCount: 0 property bool updateInProgress: false + // Initial check + Component.onCompleted: doPoll() + // Process for checking updates Process { id: checkupdatesProcess command: ["checkupdates"] onExited: function (exitCode) { if (exitCode !== 0 && exitCode !== 2) { - console.warn("[UpdateService] checkupdates failed (code:", exitCode, ")") + Logger.warn("ArchUpdater", "checkupdates failed (code:", exitCode, ")") updatePackages = [] - return } } stdout: StdioCollector { onStreamFinished: { parseCheckupdatesOutput(text) + Logger.log("ArchUpdater", "found", updatePackages.length, "upgradable package(s)") } } } @@ -150,8 +154,4 @@ Singleton { running: true onTriggered: doPoll() } - - // Initial check - Component.onCompleted: doPoll() } -*/ \ No newline at end of file diff --git a/Services/BarWidgetRegistry.qml b/Services/BarWidgetRegistry.qml index a7a2e0f..b6e735c 100644 --- a/Services/BarWidgetRegistry.qml +++ b/Services/BarWidgetRegistry.qml @@ -10,8 +10,8 @@ Singleton { // Widget registry object mapping widget names to components property var widgets: ({ "ActiveWindow": activeWindowComponent, - "Battery"// "ArchUpdater": archUpdaterComponent, - : batteryComponent, + "ArchUpdater": archUpdaterComponent, + "Battery": batteryComponent, "Bluetooth": bluetoothComponent, "Brightness": brightnessComponent, "Clock": clockComponent, @@ -32,9 +32,9 @@ Singleton { property Component activeWindowComponent: Component { ActiveWindow {} } - // property Component archUpdaterComponent: Component { - // ArchUpdater {} - // } + property Component archUpdaterComponent: Component { + ArchUpdater {} + } property Component batteryComponent: Component { Battery {} }