summaryrefslogtreecommitdiff
path: root/modules/controlcenter/network/WirelessDetails.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/WirelessDetails.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/WirelessDetails.qml')
-rw-r--r--modules/controlcenter/network/WirelessDetails.qml158
1 files changed, 158 insertions, 0 deletions
diff --git a/modules/controlcenter/network/WirelessDetails.qml b/modules/controlcenter/network/WirelessDetails.qml
new file mode 100644
index 0000000..e858fbc
--- /dev/null
+++ b/modules/controlcenter/network/WirelessDetails.qml
@@ -0,0 +1,158 @@
+pragma ComponentBehavior: Bound
+
+import ".."
+import "."
+import qs.components
+import qs.components.controls
+import qs.components.effects
+import qs.components.containers
+import qs.services
+import qs.config
+import QtQuick
+import QtQuick.Layouts
+
+Item {
+ id: root
+
+ required property Session session
+ readonly property var network: session.network.active
+
+ readonly property var connectionHelper: WirelessConnectionHelper {
+ session: root.session
+ }
+
+ Component.onCompleted: {
+ if (network && network.active) {
+ Network.updateWirelessDeviceDetails();
+ }
+ }
+
+ onNetworkChanged: {
+ if (network && network.active) {
+ Network.updateWirelessDeviceDetails();
+ } else {
+ Network.wirelessDeviceDetails = null;
+ }
+ }
+
+ Connections {
+ target: Network
+ function onActiveChanged() {
+ if (root.network && root.network.active && Network.active && Network.active.ssid === root.network.ssid) {
+ Network.updateWirelessDeviceDetails();
+ } else if (!root.network || !root.network.active) {
+ Network.wirelessDeviceDetails = null;
+ }
+ }
+ }
+
+ StyledFlickable {
+ anchors.fill: parent
+
+ flickableDirection: Flickable.VerticalFlick
+ contentHeight: layout.height
+
+ ColumnLayout {
+ id: layout
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: Appearance.spacing.normal
+
+ ConnectionHeader {
+ icon: root.network?.isSecure ? "lock" : "wifi"
+ title: root.network?.ssid ?? qsTr("Unknown")
+ }
+
+ SectionHeader {
+ title: qsTr("Connection status")
+ description: qsTr("Connection settings for this network")
+ }
+
+ SectionContainer {
+ ToggleRow {
+ label: qsTr("Connected")
+ checked: root.network?.active ?? false
+ toggle.onToggled: {
+ if (checked) {
+ root.connectionHelper.connectToNetwork(root.network);
+ } else {
+ Network.disconnectFromNetwork();
+ }
+ }
+ }
+
+ SimpleButton {
+ Layout.fillWidth: true
+ Layout.topMargin: Appearance.spacing.normal
+ visible: root.network && root.network.ssid && Network.savedConnections.includes(root.network.ssid)
+ color: Colours.palette.m3errorContainer
+ onColor: Colours.palette.m3onErrorContainer
+ text: qsTr("Forget Network")
+
+ onClicked: {
+ if (root.network && root.network.ssid) {
+ // Disconnect first if connected
+ if (root.network.active) {
+ Network.disconnectFromNetwork();
+ }
+ // Delete the connection profile
+ Network.forgetNetwork(root.network.ssid);
+ }
+ }
+ }
+ }
+
+ SectionHeader {
+ title: qsTr("Network properties")
+ description: qsTr("Additional information")
+ }
+
+ SectionContainer {
+ contentSpacing: Appearance.spacing.small / 2
+
+ PropertyRow {
+ label: qsTr("SSID")
+ value: root.network?.ssid ?? qsTr("Unknown")
+ }
+
+ PropertyRow {
+ showTopMargin: true
+ label: qsTr("BSSID")
+ value: root.network?.bssid ?? qsTr("Unknown")
+ }
+
+ PropertyRow {
+ showTopMargin: true
+ label: qsTr("Signal strength")
+ value: root.network ? qsTr("%1%").arg(root.network.strength) : qsTr("N/A")
+ }
+
+ PropertyRow {
+ showTopMargin: true
+ label: qsTr("Frequency")
+ value: root.network ? qsTr("%1 MHz").arg(root.network.frequency) : qsTr("N/A")
+ }
+
+ PropertyRow {
+ showTopMargin: true
+ label: qsTr("Security")
+ value: root.network ? (root.network.isSecure ? root.network.security : qsTr("Open")) : qsTr("N/A")
+ }
+ }
+
+ SectionHeader {
+ title: qsTr("Connection information")
+ description: qsTr("Network connection details")
+ }
+
+ SectionContainer {
+ ConnectionInfoSection {
+ deviceDetails: Network.wirelessDeviceDetails
+ }
+ }
+
+ }
+ }
+}
+