From 1c523240d84edc8a947d0063e3b9a707b6d818c0 Mon Sep 17 00:00:00 2001 From: ATMDA Date: Wed, 19 Nov 2025 13:48:06 -0500 Subject: [PATCH] refactor: added state module --- modules/controlcenter/Session.qml | 33 ++++--------------- .../controlcenter/state/BluetoothState.qml | 18 ++++++++++ modules/controlcenter/state/EthernetState.qml | 9 +++++ modules/controlcenter/state/LauncherState.qml | 9 +++++ modules/controlcenter/state/NetworkState.qml | 13 ++++++++ 5 files changed, 55 insertions(+), 27 deletions(-) create mode 100644 modules/controlcenter/state/BluetoothState.qml create mode 100644 modules/controlcenter/state/EthernetState.qml create mode 100644 modules/controlcenter/state/LauncherState.qml create mode 100644 modules/controlcenter/state/NetworkState.qml diff --git a/modules/controlcenter/Session.qml b/modules/controlcenter/Session.qml index 6f560f5e..5d7b0942 100644 --- a/modules/controlcenter/Session.qml +++ b/modules/controlcenter/Session.qml @@ -1,5 +1,5 @@ -import Quickshell.Bluetooth import QtQuick +import "./state" QtObject { readonly property list panes: ["network", "bluetooth", "audio", "appearance", "taskbar", "launcher"] @@ -10,33 +10,12 @@ QtObject { property int activeIndex: 0 property bool navExpanded: false - readonly property Bt bt: Bt {} - readonly property Network network: Network {} - readonly property Ethernet ethernet: Ethernet {} - readonly property Launcher launcher: Launcher {} + // Pane-specific state objects + readonly property BluetoothState bt: BluetoothState {} + readonly property NetworkState network: NetworkState {} + readonly property EthernetState ethernet: EthernetState {} + readonly property LauncherState launcher: LauncherState {} onActiveChanged: activeIndex = panes.indexOf(active) onActiveIndexChanged: active = panes[activeIndex] - - component Bt: QtObject { - property BluetoothDevice active - property BluetoothAdapter currentAdapter: Bluetooth.defaultAdapter - property bool editingAdapterName - property bool fabMenuOpen - property bool editingDeviceName - } - - component Network: QtObject { - property var active - property bool showPasswordDialog: false - property var pendingNetwork - } - - component Ethernet: QtObject { - property var active - } - - component Launcher: QtObject { - property var active - } } diff --git a/modules/controlcenter/state/BluetoothState.qml b/modules/controlcenter/state/BluetoothState.qml new file mode 100644 index 00000000..db8c7e12 --- /dev/null +++ b/modules/controlcenter/state/BluetoothState.qml @@ -0,0 +1,18 @@ +import Quickshell.Bluetooth +import QtQuick + +QtObject { + id: root + + // Active selected device + property BluetoothDevice active: null + + // Current adapter being used + property BluetoothAdapter currentAdapter: Bluetooth.defaultAdapter + + // UI state flags + property bool editingAdapterName: false + property bool fabMenuOpen: false + property bool editingDeviceName: false +} + diff --git a/modules/controlcenter/state/EthernetState.qml b/modules/controlcenter/state/EthernetState.qml new file mode 100644 index 00000000..25b243a1 --- /dev/null +++ b/modules/controlcenter/state/EthernetState.qml @@ -0,0 +1,9 @@ +import QtQuick + +QtObject { + id: root + + // Active selected ethernet interface + property var active: null +} + diff --git a/modules/controlcenter/state/LauncherState.qml b/modules/controlcenter/state/LauncherState.qml new file mode 100644 index 00000000..cd9eeb6a --- /dev/null +++ b/modules/controlcenter/state/LauncherState.qml @@ -0,0 +1,9 @@ +import QtQuick + +QtObject { + id: root + + // Active selected application + property var active: null +} + diff --git a/modules/controlcenter/state/NetworkState.qml b/modules/controlcenter/state/NetworkState.qml new file mode 100644 index 00000000..651a35cd --- /dev/null +++ b/modules/controlcenter/state/NetworkState.qml @@ -0,0 +1,13 @@ +import QtQuick + +QtObject { + id: root + + // Active selected wireless network + property var active: null + + // Password dialog state + property bool showPasswordDialog: false + property var pendingNetwork: null +} +