summaryrefslogtreecommitdiff
path: root/modules/controlcenter/network/WirelessConnectionHelper.qml
diff options
context:
space:
mode:
authorATMDA <atdma2600@gmail.com>2025-11-12 21:58:14 -0500
committerATMDA <atdma2600@gmail.com>2025-11-12 21:58:14 -0500
commitfc223237f0938c7904360d8c2674368bffa53373 (patch)
treec00be67fbdfcfbff0c17183ecea766213cb19076 /modules/controlcenter/network/WirelessConnectionHelper.qml
parentnotifs/toasts: reverted all changes to notifications to c0ea060f (diff)
downloadcaelestia-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.qml46
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);
+ }
+ }
+}
+