summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorATMDA <atdma2600@gmail.com>2025-11-19 19:11:41 -0500
committerATMDA <atdma2600@gmail.com>2025-11-19 19:11:41 -0500
commit70ec8cea651c0f49e9ccf25b6e8685d81ac6710b (patch)
treec267c2232b705ec377de676a565dc406514702ee /modules
parentrefactor: SettingsHeader on all panels (diff)
downloadcaelestia-shell-70ec8cea651c0f49e9ccf25b6e8685d81ac6710b.tar.gz
caelestia-shell-70ec8cea651c0f49e9ccf25b6e8685d81ac6710b.tar.bz2
caelestia-shell-70ec8cea651c0f49e9ccf25b6e8685d81ac6710b.zip
refactor: NetworkConnection util created, migrated all functions
Diffstat (limited to 'modules')
-rw-r--r--modules/bar/popouts/Network.qml34
-rw-r--r--modules/bar/popouts/WirelessPassword.qml3
-rw-r--r--modules/controlcenter/network/NetworkingPane.qml43
-rw-r--r--modules/controlcenter/network/WirelessDetails.qml38
-rw-r--r--modules/controlcenter/network/WirelessList.qml44
-rw-r--r--modules/controlcenter/network/WirelessPasswordDialog.qml3
6 files changed, 22 insertions, 143 deletions
diff --git a/modules/bar/popouts/Network.qml b/modules/bar/popouts/Network.qml
index b9f66c4..0e99613 100644
--- a/modules/bar/popouts/Network.qml
+++ b/modules/bar/popouts/Network.qml
@@ -131,27 +131,19 @@ ColumnLayout {
Nmcli.disconnectFromNetwork();
} else {
root.connectingToSsid = networkItem.modelData.ssid;
- // Check if network is secure
- if (networkItem.modelData.isSecure) {
- // Try to connect first - will show password dialog if password is needed
- Nmcli.connectToNetwork(networkItem.modelData.ssid, "", networkItem.modelData.bssid, result => {
- if (result && result.needsPassword) {
- // Password is required - show password dialog
- root.passwordNetwork = networkItem.modelData;
- root.showPasswordDialog = true;
- root.wrapper.currentName = "wirelesspassword";
- } else if (result && result.success) {
- // Connection successful with saved password
- root.connectingToSsid = "";
- } else {
- // Connection failed for other reasons
- root.connectingToSsid = "";
- }
- });
- } else {
- // Open network, no password needed
- Nmcli.connectToNetwork(networkItem.modelData.ssid, "", networkItem.modelData.bssid, null);
- }
+ NetworkConnection.handleConnect(
+ networkItem.modelData,
+ null,
+ (network) => {
+ // Password is required - show password dialog
+ root.passwordNetwork = network;
+ root.showPasswordDialog = true;
+ root.wrapper.currentName = "wirelesspassword";
+ }
+ );
+
+ // Clear connecting state if connection succeeds immediately (saved profile)
+ // This is handled by the onActiveChanged connection below
}
}
}
diff --git a/modules/bar/popouts/WirelessPassword.qml b/modules/bar/popouts/WirelessPassword.qml
index d91c87c..5da50b6 100644
--- a/modules/bar/popouts/WirelessPassword.qml
+++ b/modules/bar/popouts/WirelessPassword.qml
@@ -4,6 +4,7 @@ import qs.components
import qs.components.controls
import qs.services
import qs.config
+import qs.utils
import Quickshell
import QtQuick
import QtQuick.Layouts
@@ -452,7 +453,7 @@ ColumnLayout {
text = qsTr("Connecting...");
// Connect to network
- Nmcli.connectToNetwork(root.network.ssid, password, root.network.bssid || "", result => {
+ NetworkConnection.connectWithPassword(root.network, password, result => {
if (result && result.success)
// Connection successful, monitor will handle the rest
{} else if (result && result.needsPassword) {
diff --git a/modules/controlcenter/network/NetworkingPane.qml b/modules/controlcenter/network/NetworkingPane.qml
index 9a7a4e1..d76e8f5 100644
--- a/modules/controlcenter/network/NetworkingPane.qml
+++ b/modules/controlcenter/network/NetworkingPane.qml
@@ -415,7 +415,7 @@ Item {
if (modelData && modelData.active) {
Nmcli.disconnectFromNetwork();
} else if (modelData) {
- handleWirelessConnect(modelData);
+ NetworkConnection.handleConnect(modelData, root.session, null);
}
}
}
@@ -586,46 +586,5 @@ Item {
Nmcli.loadSavedConnections(() => {});
}
}
-
- function handleWirelessConnect(network): void {
- if (Nmcli.active && Nmcli.active.ssid !== network.ssid) {
- Nmcli.disconnectFromNetwork();
- Qt.callLater(() => {
- connectToWirelessNetwork(network);
- });
- } else {
- connectToWirelessNetwork(network);
- }
- }
-
- function connectToWirelessNetwork(network): void {
- if (network.isSecure) {
- const hasSavedProfile = Nmcli.hasSavedProfile(network.ssid);
-
- if (hasSavedProfile) {
- Nmcli.connectToNetwork(network.ssid, "", network.bssid, null);
- } else {
- Nmcli.connectToNetworkWithPasswordCheck(
- network.ssid,
- network.isSecure,
- (result) => {
- if (result.needsPassword) {
- if (Nmcli.pendingConnection) {
- Nmcli.connectionCheckTimer.stop();
- Nmcli.immediateCheckTimer.stop();
- Nmcli.immediateCheckTimer.checkCount = 0;
- Nmcli.pendingConnection = null;
- }
- root.session.network.showPasswordDialog = true;
- root.session.network.pendingNetwork = network;
- }
- },
- network.bssid
- );
- }
- } else {
- Nmcli.connectToNetwork(network.ssid, "", network.bssid, null);
- }
- }
}
diff --git a/modules/controlcenter/network/WirelessDetails.qml b/modules/controlcenter/network/WirelessDetails.qml
index 09abff3..57c06c8 100644
--- a/modules/controlcenter/network/WirelessDetails.qml
+++ b/modules/controlcenter/network/WirelessDetails.qml
@@ -8,6 +8,7 @@ import qs.components.effects
import qs.components.containers
import qs.services
import qs.config
+import qs.utils
import QtQuick
import QtQuick.Layouts
@@ -125,7 +126,7 @@ Item {
checked: root.network?.active ?? false
toggle.onToggled: {
if (checked) {
- root.handleConnect();
+ NetworkConnection.handleConnect(root.network, root.session, null);
} else {
Nmcli.disconnectFromNetwork();
}
@@ -207,39 +208,4 @@ Item {
}
}
- function handleConnect(): void {
- if (Nmcli.active && Nmcli.active.ssid !== root.network.ssid) {
- Nmcli.disconnectFromNetwork();
- Qt.callLater(() => {
- connectToNetwork();
- });
- } else {
- connectToNetwork();
- }
- }
-
- function connectToNetwork(): void {
- if (root.network.isSecure) {
- const hasSavedProfile = Nmcli.hasSavedProfile(root.network.ssid);
-
- if (hasSavedProfile) {
- Nmcli.connectToNetwork(root.network.ssid, "", root.network.bssid, null);
- } else {
- Nmcli.connectToNetworkWithPasswordCheck(root.network.ssid, root.network.isSecure, result => {
- if (result.needsPassword) {
- if (Nmcli.pendingConnection) {
- Nmcli.connectionCheckTimer.stop();
- Nmcli.immediateCheckTimer.stop();
- Nmcli.immediateCheckTimer.checkCount = 0;
- Nmcli.pendingConnection = null;
- }
- root.session.network.showPasswordDialog = true;
- root.session.network.pendingNetwork = root.network;
- }
- }, root.network.bssid);
- }
- } else {
- Nmcli.connectToNetwork(root.network.ssid, "", root.network.bssid, null);
- }
- }
}
diff --git a/modules/controlcenter/network/WirelessList.qml b/modules/controlcenter/network/WirelessList.qml
index 00af47a..18f728c 100644
--- a/modules/controlcenter/network/WirelessList.qml
+++ b/modules/controlcenter/network/WirelessList.qml
@@ -7,6 +7,7 @@ import qs.components.controls
import qs.components.containers
import qs.services
import qs.config
+import qs.utils
import QtQuick
import QtQuick.Layouts
@@ -193,7 +194,7 @@ ColumnLayout {
if (modelData.active) {
Nmcli.disconnectFromNetwork();
} else {
- handleConnect(modelData);
+ NetworkConnection.handleConnect(modelData, root.session, null);
}
}
}
@@ -217,45 +218,4 @@ ColumnLayout {
Nmcli.loadSavedConnections(() => {});
}
}
-
- function handleConnect(network): void {
- if (Nmcli.active && Nmcli.active.ssid !== network.ssid) {
- Nmcli.disconnectFromNetwork();
- Qt.callLater(() => {
- connectToNetwork(network);
- });
- } else {
- connectToNetwork(network);
- }
- }
-
- function connectToNetwork(network): void {
- if (network.isSecure) {
- const hasSavedProfile = Nmcli.hasSavedProfile(network.ssid);
-
- if (hasSavedProfile) {
- Nmcli.connectToNetwork(network.ssid, "", network.bssid, null);
- } else {
- Nmcli.connectToNetworkWithPasswordCheck(
- network.ssid,
- network.isSecure,
- (result) => {
- if (result.needsPassword) {
- if (Nmcli.pendingConnection) {
- Nmcli.connectionCheckTimer.stop();
- Nmcli.immediateCheckTimer.stop();
- Nmcli.immediateCheckTimer.checkCount = 0;
- Nmcli.pendingConnection = null;
- }
- root.session.network.showPasswordDialog = true;
- root.session.network.pendingNetwork = network;
- }
- },
- network.bssid
- );
- }
- } else {
- Nmcli.connectToNetwork(network.ssid, "", network.bssid, null);
- }
- }
} \ No newline at end of file
diff --git a/modules/controlcenter/network/WirelessPasswordDialog.qml b/modules/controlcenter/network/WirelessPasswordDialog.qml
index 4b350be..0f1a5cd 100644
--- a/modules/controlcenter/network/WirelessPasswordDialog.qml
+++ b/modules/controlcenter/network/WirelessPasswordDialog.qml
@@ -8,6 +8,7 @@ import qs.components.effects
import qs.components.containers
import qs.services
import qs.config
+import qs.utils
import Quickshell
import QtQuick
import QtQuick.Layouts
@@ -391,7 +392,7 @@ Item {
text = qsTr("Connecting...");
// Connect to network
- Nmcli.connectToNetwork(root.network.ssid, password, root.network.bssid || "", result => {
+ NetworkConnection.connectWithPassword(root.network, password, result => {
if (result && result.success)
// Connection successful, monitor will handle the rest
{} else if (result && result.needsPassword) {