diff options
| author | ATMDA <atdma2600@gmail.com> | 2025-11-19 14:07:53 -0500 |
|---|---|---|
| committer | ATMDA <atdma2600@gmail.com> | 2025-11-19 14:07:53 -0500 |
| commit | 50dd4e1c441db43bc4dee5d5007f28c52cef848b (patch) | |
| tree | 6ab9e43c24cf48cdcf120c5fc1275cc4cb116cf0 /modules/controlcenter/Panes.qml | |
| parent | refactor: added state module (diff) | |
| download | caelestia-shell-50dd4e1c441db43bc4dee5d5007f28c52cef848b.tar.gz caelestia-shell-50dd4e1c441db43bc4dee5d5007f28c52cef848b.tar.bz2 caelestia-shell-50dd4e1c441db43bc4dee5d5007f28c52cef848b.zip | |
refactor: created pane registry
Diffstat (limited to 'modules/controlcenter/Panes.qml')
| -rw-r--r-- | modules/controlcenter/Panes.qml | 58 |
1 files changed, 17 insertions, 41 deletions
diff --git a/modules/controlcenter/Panes.qml b/modules/controlcenter/Panes.qml index 756d73a..b9256a9 100644 --- a/modules/controlcenter/Panes.qml +++ b/modules/controlcenter/Panes.qml @@ -9,6 +9,7 @@ import "launcher" import qs.components import qs.services import qs.config +import qs.modules.controlcenter import Quickshell.Widgets import QtQuick import QtQuick.Layouts @@ -76,45 +77,13 @@ ClippingRectangle { } } - Pane { - index: 0 - sourceComponent: NetworkingPane { - session: root.session - } - } - - Pane { - index: 1 - sourceComponent: BtPane { - session: root.session - } - } - - Pane { - index: 2 - sourceComponent: AudioPane { - session: root.session - } - } + Repeater { + model: PaneRegistry.count - Pane { - index: 3 - sourceComponent: AppearancePane { - session: root.session - } - } - - Pane { - index: 4 - sourceComponent: TaskbarPane { - session: root.session - } - } - - Pane { - index: 5 - sourceComponent: LauncherPane { - session: root.session + Pane { + required property int index + paneIndex: index + componentPath: PaneRegistry.getByIndex(index).component } } @@ -135,8 +104,8 @@ ClippingRectangle { component Pane: Item { id: pane - required property int index - property alias sourceComponent: loader.sourceComponent + required property int paneIndex + required property string componentPath implicitWidth: root.width implicitHeight: root.height @@ -146,7 +115,7 @@ ClippingRectangle { // Function to compute if this pane should be active function updateActive(): void { - const diff = Math.abs(root.session.activeIndex - pane.index); + const diff = Math.abs(root.session.activeIndex - pane.paneIndex); const isActivePane = diff === 0; let shouldBeActive = false; @@ -187,6 +156,13 @@ ClippingRectangle { if (active && !pane.hasBeenLoaded) { pane.hasBeenLoaded = true; } + + // Load the component with initial properties when activated + if (active && !item) { + loader.setSource(pane.componentPath, { + "session": root.session + }); + } } onItemChanged: { |