summaryrefslogtreecommitdiff
path: root/modules/controlcenter/Panes.qml
diff options
context:
space:
mode:
authorATMDA <atdma2600@gmail.com>2025-11-19 14:07:53 -0500
committerATMDA <atdma2600@gmail.com>2025-11-19 14:07:53 -0500
commit50dd4e1c441db43bc4dee5d5007f28c52cef848b (patch)
tree6ab9e43c24cf48cdcf120c5fc1275cc4cb116cf0 /modules/controlcenter/Panes.qml
parentrefactor: added state module (diff)
downloadcaelestia-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.qml58
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: {