diff options
| author | ATMDA <atdma2600@gmail.com> | 2025-11-09 21:43:51 -0500 |
|---|---|---|
| committer | ATMDA <atdma2600@gmail.com> | 2025-11-09 21:43:51 -0500 |
| commit | d8de7c7e4b1b57470297dc238b210670f87c23ba (patch) | |
| tree | bd0a600ab3927db2b0f8d1d531818425dd2f56c3 /modules/controlcenter/network/NetworkList.qml | |
| parent | fix: panels (i'm debugging) (diff) | |
| download | caelestia-shell-d8de7c7e4b1b57470297dc238b210670f87c23ba.tar.gz caelestia-shell-d8de7c7e4b1b57470297dc238b210670f87c23ba.tar.bz2 caelestia-shell-d8de7c7e4b1b57470297dc238b210670f87c23ba.zip | |
controlcenter: wifi passphrase input
fix: dependability issues with nmcli
Diffstat (limited to 'modules/controlcenter/network/NetworkList.qml')
| -rw-r--r-- | modules/controlcenter/network/NetworkList.qml | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/modules/controlcenter/network/NetworkList.qml b/modules/controlcenter/network/NetworkList.qml index 8dfebc7..df05de7 100644 --- a/modules/controlcenter/network/NetworkList.qml +++ b/modules/controlcenter/network/NetworkList.qml @@ -214,14 +214,35 @@ ColumnLayout { if (modelData.active) { Network.disconnectFromNetwork(); } else { - if (modelData.isSecure) { - root.session.network.showPasswordDialog = true; - root.session.network.pendingNetwork = modelData; + // If already connected to a different network, disconnect first + if (Network.active && Network.active.ssid !== modelData.ssid) { + Network.disconnectFromNetwork(); + // Wait a moment before connecting to new network + Qt.callLater(() => { + connectToNetwork(); + }); } else { - Network.connectToNetwork(modelData.ssid, ""); + connectToNetwork(); } } } + + function connectToNetwork(): void { + if (modelData.isSecure) { + // Try connecting without password first (in case it's saved) + Network.connectToNetworkWithPasswordCheck( + modelData.ssid, + modelData.isSecure, + () => { + // Callback: connection failed, show password dialog + root.session.network.showPasswordDialog = true; + root.session.network.pendingNetwork = modelData; + } + ); + } else { + Network.connectToNetwork(modelData.ssid, ""); + } + } } MaterialIcon { |