diff options
| author | ATMDA <atdma2600@gmail.com> | 2025-11-12 21:58:14 -0500 |
|---|---|---|
| committer | ATMDA <atdma2600@gmail.com> | 2025-11-12 21:58:14 -0500 |
| commit | fc223237f0938c7904360d8c2674368bffa53373 (patch) | |
| tree | c00be67fbdfcfbff0c17183ecea766213cb19076 /modules/controlcenter/network/WirelessConnectionHelper.qml | |
| parent | notifs/toasts: reverted all changes to notifications to c0ea060f (diff) | |
| download | caelestia-shell-fc223237f0938c7904360d8c2674368bffa53373.tar.gz caelestia-shell-fc223237f0938c7904360d8c2674368bffa53373.tar.bz2 caelestia-shell-fc223237f0938c7904360d8c2674368bffa53373.zip | |
controlcenter: wireless panel rewrite
Diffstat (limited to 'modules/controlcenter/network/WirelessConnectionHelper.qml')
| -rw-r--r-- | modules/controlcenter/network/WirelessConnectionHelper.qml | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/modules/controlcenter/network/WirelessConnectionHelper.qml b/modules/controlcenter/network/WirelessConnectionHelper.qml new file mode 100644 index 0000000..d63b359 --- /dev/null +++ b/modules/controlcenter/network/WirelessConnectionHelper.qml @@ -0,0 +1,46 @@ +pragma ComponentBehavior: Bound + +import ".." +import qs.services +import QtQuick + +QtObject { + id: root + + required property Session session + + function connectToNetwork(network: var): void { + if (!network) { + return; + } + + // If already connected to a different network, disconnect first + if (Network.active && Network.active.ssid !== network.ssid) { + Network.disconnectFromNetwork(); + Qt.callLater(() => { + performConnect(network); + }); + } else { + performConnect(network); + } + } + + function performConnect(network: var): void { + if (network.isSecure) { + // Try connecting without password first (in case it's saved) + Network.connectToNetworkWithPasswordCheck( + network.ssid, + network.isSecure, + () => { + // Callback: connection failed, show password dialog + root.session.network.showPasswordDialog = true; + root.session.network.pendingNetwork = network; + }, + network.bssid + ); + } else { + Network.connectToNetwork(network.ssid, "", network.bssid, null); + } + } +} + |