summaryrefslogtreecommitdiff
path: root/modules/controlcenter/network/NetworkList.qml
diff options
context:
space:
mode:
authorATMDA <atdma2600@gmail.com>2025-11-09 21:43:51 -0500
committerATMDA <atdma2600@gmail.com>2025-11-09 21:43:51 -0500
commitd8de7c7e4b1b57470297dc238b210670f87c23ba (patch)
treebd0a600ab3927db2b0f8d1d531818425dd2f56c3 /modules/controlcenter/network/NetworkList.qml
parentfix: panels (i'm debugging) (diff)
downloadcaelestia-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.qml29
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 {