nosignal-shell/modules/nexus/PageCompRegistry.qml
2026-06-07 19:14:26 +10:00

163 lines
4 KiB
QML

pragma Singleton
import QtQuick
import QtQuick.Layouts
import Caelestia.Config
import qs.components
import qs.services
import qs.modules.nexus.common
import qs.modules.nexus.pages
import qs.modules.nexus.pages.audio
import qs.modules.nexus.pages.bluetooth
import qs.modules.nexus.pages.panels
import qs.modules.nexus.pages.wallandstyle
import qs.modules.nexus.pages.panels.taskbar
QtObject {
id: root
readonly property list<Component> pageComps: [
// Appearance
Component {
// Wallpaper & style
StackPage {
Component {
WallpaperAndStyle {}
}
Component {
WallpaperSelect {}
}
Component {
WallpaperCategory {}
}
Component {
ColourSelect {}
}
}
},
// Connectivity
Component {
// Network
StackPage {
Component {
NetworkPage {}
}
}
},
Component {
// Bluetooth
StackPage {
Component {
BluetoothPage {}
}
Component {
BtDeviceInfo {}
}
Component {
BluetoothPairing {}
}
}
},
Component {
// Audio
StackPage {
Component {
AudioPage {}
}
Component {
AppVolumes {}
}
}
},
// System
Component {
PlaceholderComp {}
},
Component {
PlaceholderComp {}
},
// Shell
Component {
// Panels
StackPage {
Component {
PanelsPage {}
}
Component {
DashboardPanel {}
}
Component {
TaskbarPanel {}
}
Component {
LauncherPanel {}
}
Component {
SidebarPanel {}
}
// Taskbar component sub-pages
Component {
BarWorkspaces {}
}
Component {
BarActiveWindow {}
}
Component {
BarTray {}
}
Component {
BarStatusIcons {}
}
Component {
BarClock {}
}
}
},
Component {
// Services
StackPage {
Component {
ServicesPage {}
}
}
}
]
readonly property Component placeholderComp: Component {
PlaceholderComp {}
}
component PlaceholderComp: Item {
property NexusState nState // To avoid the warning from non-existent property
ColumnLayout {
anchors.centerIn: parent
spacing: Tokens.padding.extraSmall
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
text: "handyman"
color: Colours.palette.m3outlineVariant
font: Tokens.font.icon.extraLarge
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("Page under construction")
color: Colours.palette.m3outlineVariant
font: Tokens.font.title.large
}
StyledText {
Layout.alignment: Qt.AlignHCenter
text: qsTr("This page will be available in a future update.")
color: Colours.palette.m3outlineVariant
font: Tokens.font.body.large
}
}
}
}