From 79d83cbe37d5d9d4812da565bd9395f3ddc18cdb Mon Sep 17 00:00:00 2001 From: voidarc Date: Sun, 9 Aug 2026 12:23:50 +0100 Subject: [PATCH] had opencode fix my weird animation issues, now the bar loads correctly from a coldstart --- Bar/Battery.qml | 2 +- Bar/Bluetooth.qml | 2 +- Bar/Network.qml | 2 +- Components/Container.qml | 16 +++++++++++----- Services/BatteryManager.qml | 1 + Services/BluetoothManager.qml | 16 ++++------------ Services/NetworkManager.qml | 23 ++++++++++++++++++----- 7 files changed, 37 insertions(+), 25 deletions(-) diff --git a/Bar/Battery.qml b/Bar/Battery.qml index 6e13996..e0de981 100644 --- a/Bar/Battery.qml +++ b/Bar/Battery.qml @@ -20,7 +20,7 @@ Container { boxRadius: radius defaultItem: icon exclusiveMonitor: root.monitor - forceHidden: !BatteryManager.mainBattery.isLaptopBattery + forceHidden: !BatteryManager.hasLaptopBattery states: [ State { diff --git a/Bar/Bluetooth.qml b/Bar/Bluetooth.qml index 7542f2d..0687db5 100644 --- a/Bar/Bluetooth.qml +++ b/Bar/Bluetooth.qml @@ -23,7 +23,7 @@ Container { defaultItem: icon exclusiveMonitor: root.monitor exclusiveToScreen: true - forceHidden: !(BluetoothManager.getConnected()) + forceHidden: !BluetoothManager.anyConnected states: [ State { diff --git a/Bar/Network.qml b/Bar/Network.qml index ddec3cf..3a40c6b 100644 --- a/Bar/Network.qml +++ b/Bar/Network.qml @@ -20,7 +20,7 @@ Container { defaultItem: icon exclusiveMonitor: root.monitor exclusiveToScreen: true - forceHidden: !NetworkManager.isConnectedAndWifi() + forceHidden: !NetworkManager.connectedWifi states: [ State { diff --git a/Components/Container.qml b/Components/Container.qml index 08302e5..5928f2c 100644 --- a/Components/Container.qml +++ b/Components/Container.qml @@ -42,7 +42,11 @@ Item { property double visibleTopMargin: 0 implicitHeight: boxHeight - implicitWidth: boxWidth + implicitWidth: root._widthCollapsed ? 0 : root.boxWidth + visible: !root._fullyHidden + + property bool _widthCollapsed: false + property bool _fullyHidden: false Behavior on anchors.topMargin { animation: defaultCurve @@ -70,8 +74,10 @@ Item { if (root.forceHidden == true) { hideTimer.restart(); } else { - root.implicitWidth = root.boxWidth; - root.visible = true; + hideTimer.stop(); + subHideTimer.stop(); + root._fullyHidden = false; + root._widthCollapsed = false; } } @@ -83,7 +89,7 @@ Item { running: false onTriggered: { - root.implicitWidth = 0; + root._widthCollapsed = true; subHideTimer.restart(); } } @@ -96,7 +102,7 @@ Item { running: false onTriggered: { - root.visible = false; + root._fullyHidden = true; } } diff --git a/Services/BatteryManager.qml b/Services/BatteryManager.qml index 4f9f6ba..c8cc381 100644 --- a/Services/BatteryManager.qml +++ b/Services/BatteryManager.qml @@ -11,6 +11,7 @@ Singleton { property double batteryPercentage: root.mainBattery.percentage || 0 property bool batteryPresent: root.mainBattery.ready || false property UPowerDevice mainBattery: UPower.displayDevice || undefined + property bool hasLaptopBattery: root.mainBattery && root.mainBattery.isLaptopBattery diff --git a/Services/BluetoothManager.qml b/Services/BluetoothManager.qml index eaa1e5d..92bdd20 100644 --- a/Services/BluetoothManager.qml +++ b/Services/BluetoothManager.qml @@ -9,19 +9,11 @@ Singleton { property BluetoothAdapter defaultAdapter: Bluetooth.defaultAdapter || null property string defaultAdapterName: defaultAdapter ? defaultAdapter.adapterId : "" + property bool anyConnected: root.defaultAdapter != null + && root.defaultAdapter.devices.values.some(device => device.connected) + function getConnected() { - let deviceList = getDevicesList(); - if (deviceList.length == 0) { - return false; - } else { - for (let device in deviceList) { - let currentDevice = deviceList[device]; - if (currentDevice.connected == true) { - return true; - } - } - return false; - } + return root.anyConnected; } function getConnectedDevicesList() { diff --git a/Services/NetworkManager.qml b/Services/NetworkManager.qml index 8ac51b1..24d4fd1 100644 --- a/Services/NetworkManager.qml +++ b/Services/NetworkManager.qml @@ -8,6 +8,10 @@ Singleton { property NetworkDevice defaultAdapter: Networking.devices.values[0] + property bool connectedWifi: root.defaultAdapter != null + && root.defaultAdapter.connected + && root.defaultAdapter.type == DeviceType.Wifi + function getConnectedNetworks(networksArr) { let connectedNetworks = []; @@ -20,6 +24,17 @@ Singleton { } function getNetworkDetails(adapter) { + if (!adapter) { + return { + "adapterName": "", + "adapterConnected": false, + "adapterIsWifi": false, + "networkName": "", + "networkStrength": 0, + "icon": "󰤭" + }; + } + let networksArr = adapter.networks.values; let connectedNetworks = getConnectedNetworks(networksArr); let deviceWifi = isDeviceWifi(adapter); @@ -48,11 +63,9 @@ Singleton { return iconArr[strengthIndex - 1]; } - function isConnectedAndWifi() { - let isConnected = defaultAdapter.connected - let isWifi = isDeviceWifi(defaultAdapter) - return isConnected && isWifi - } + function isConnectedAndWifi() { + return root.connectedWifi; + } function getWifiText() { let info = getNetworkDetails(defaultAdapter);