quickshell: fix network widget not updating after actions
Reset state before each poll so disconnected state is detected. Immediately update icon on disconnect, and trigger a delayed re-poll (2s) after connect/disconnect actions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
24b27d02fc
commit
d474f87df5
1 changed files with 19 additions and 6 deletions
|
|
@ -559,7 +559,14 @@ in
|
||||||
running: true
|
running: true
|
||||||
repeat: true
|
repeat: true
|
||||||
triggeredOnStart: true
|
triggeredOnStart: true
|
||||||
onTriggered: netProc.running = true
|
onTriggered: netWidget.refreshNet()
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshNet() {
|
||||||
|
netWidget.netState = "disconnected";
|
||||||
|
netWidget.netConn = "";
|
||||||
|
netWidget.netIcon = netWidget.netType === "wifi" ? "\u{f05aa}" : "\u{f0201}";
|
||||||
|
netProc.running = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Process {
|
Process {
|
||||||
|
|
@ -581,11 +588,6 @@ in
|
||||||
netWidget.netConn = conn;
|
netWidget.netConn = conn;
|
||||||
netWidget.netType = type;
|
netWidget.netType = type;
|
||||||
netWidget.netIcon = type === "wifi" ? "\u{f05a9}" : "\u{f0200}";
|
netWidget.netIcon = type === "wifi" ? "\u{f05a9}" : "\u{f0200}";
|
||||||
} else if (netWidget.netState !== "connected") {
|
|
||||||
netWidget.netState = "disconnected";
|
|
||||||
netWidget.netConn = "";
|
|
||||||
netWidget.netType = type;
|
|
||||||
netWidget.netIcon = type === "wifi" ? "\u{f05aa}" : "\u{f0201}";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -602,6 +604,12 @@ in
|
||||||
property var wifiNetworks: []
|
property var wifiNetworks: []
|
||||||
property string netDevice: ""
|
property string netDevice: ""
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: netRefreshDelay
|
||||||
|
interval: 2000
|
||||||
|
onTriggered: netWidget.refreshNet()
|
||||||
|
}
|
||||||
|
|
||||||
Process {
|
Process {
|
||||||
id: wifiScanProc
|
id: wifiScanProc
|
||||||
command: ["${pkgs.networkmanager}/bin/nmcli", "-t", "-f", "SSID,SIGNAL,SECURITY,IN-USE", "device", "wifi", "list", "--rescan", "auto"]
|
command: ["${pkgs.networkmanager}/bin/nmcli", "-t", "-f", "SSID,SIGNAL,SECURITY,IN-USE", "device", "wifi", "list", "--rescan", "auto"]
|
||||||
|
|
@ -1020,7 +1028,11 @@ in
|
||||||
onClicked: {
|
onClicked: {
|
||||||
netDisconnectProc.targetDevice = netWidget.netDevice;
|
netDisconnectProc.targetDevice = netWidget.netDevice;
|
||||||
netDisconnectProc.running = true;
|
netDisconnectProc.running = true;
|
||||||
|
netWidget.netState = "disconnected";
|
||||||
|
netWidget.netConn = "";
|
||||||
|
netWidget.netIcon = "\u{f05aa}";
|
||||||
netDropdown.visible = false;
|
netDropdown.visible = false;
|
||||||
|
netRefreshDelay.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1106,6 +1118,7 @@ in
|
||||||
if (!modelData.active) {
|
if (!modelData.active) {
|
||||||
wifiConnectProc.targetSsid = modelData.ssid;
|
wifiConnectProc.targetSsid = modelData.ssid;
|
||||||
wifiConnectProc.running = true;
|
wifiConnectProc.running = true;
|
||||||
|
netRefreshDelay.start();
|
||||||
}
|
}
|
||||||
netDropdown.visible = false;
|
netDropdown.visible = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue