nosignal-shell/modules/nexus/PageCompRegistry.qml
2026-06-07 20:48:48 +10:00

171 lines
4.2 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 {}
}
}
},
Component {
// Language & region
StackPage {
Component {
LanguageAndRegion {}
}
}
}
]
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
}
}
}
}