nosignal-shell/modules/dashboard/Dash.qml
2026-04-11 21:18:56 +10:00

103 lines
2.1 KiB
QML

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