nosignal-shell/modules/dashboard/Dash.qml
2026-04-22 23:18:52 +10:00

105 lines
2.1 KiB
QML

import "dash"
import QtQuick.Layouts
import Caelestia.Config
import qs.components
import qs.components.filedialog
import qs.services
GridLayout {
id: root
required property DrawerVisibilities visibilities
required property DashboardState dashState
required property FileDialog facePicker
rowSpacing: Tokens.spacing.medium
columnSpacing: Tokens.spacing.medium
Rect {
Layout.column: 2
Layout.columnSpan: 3
Layout.preferredWidth: Tokens.sizes.dashboard.userWidth
Layout.fillHeight: true
radius: Tokens.rounding.extraLarge
User {
id: user
visibilities: root.visibilities
facePicker: root.facePicker
}
}
Rect {
Layout.row: 0
Layout.columnSpan: 2
Layout.preferredWidth: Tokens.sizes.dashboard.weatherWidth
Layout.preferredHeight: weather.implicitHeight
radius: Tokens.rounding.extraLarge * 1.5
SmallWeather {
id: weather
}
}
Rect {
Layout.row: 1
Layout.preferredWidth: dateTime.implicitWidth
Layout.fillHeight: true
radius: Tokens.rounding.large
DateTime {
id: dateTime
}
}
Rect {
Layout.row: 1
Layout.column: 1
Layout.columnSpan: 3
Layout.fillWidth: true
Layout.preferredHeight: calendar.implicitHeight
radius: Tokens.rounding.extraLarge
Calendar {
id: calendar
dashState: root.dashState
}
}
Rect {
Layout.row: 1
Layout.column: 4
Layout.preferredWidth: resources.implicitWidth
Layout.fillHeight: true
radius: Tokens.rounding.large
Resources {
id: resources
}
}
Rect {
Layout.row: 0
Layout.column: 5
Layout.rowSpan: 2
Layout.preferredWidth: media.implicitWidth
Layout.fillHeight: true
radius: Tokens.rounding.extraLarge * 2
Media {
id: media
}
}
component Rect: StyledRect {
color: Colours.tPalette.m3surfaceContainer
}
}