Files
illogical-impulse/.config/quickshell/modules/bar/weather/WeatherPopup.qml
T
2025-06-28 08:32:39 +03:00

97 lines
2.7 KiB
QML

import "root:/services"
import "root:/modules/common"
import "root:/modules/common/widgets"
import QtQuick
import QtQuick.Layouts
Rectangle {
id: root
readonly property real margin: 10
implicitWidth: columnLayout.implicitWidth + margin * 2
implicitHeight: columnLayout.implicitHeight + margin * 2
color: Appearance.colors.colLayer0
radius: 12
clip: true
border.color: Appearance.colors.colShadow
border.width: 1
ColumnLayout {
id: columnLayout
spacing: 5
anchors.centerIn: root
implicitWidth: Math.max(header.implicitWidth, gridLayout.implicitWidth)
implicitHeight: gridLayout.implicitHeight
// Header
RowLayout {
id: header
spacing: 5
Layout.fillWidth: parent
Layout.alignment: Qt.AlignHCenter
MaterialSymbol {
fill: 0
text: "location_on"
iconSize: Appearance.font.pixelSize.huge
}
StyledText {
text: WeatherService.data.city
font.pixelSize: Appearance.font.pixelSize.title
font.family: Appearance.font.family.title
color: Appearance.colors.colOnLayer0
}
}
// Metrics grid
GridLayout {
id: gridLayout
columns: 2
rowSpacing: 5
columnSpacing: 5
uniformCellWidths: true
WeatherCard {
title: "UV Index"
symbol: "wb_sunny"
value: WeatherService.data.uv
}
WeatherCard {
title: "Wind"
symbol: "air"
value: `(${WeatherService.data.windDir}) ${WeatherService.data.wind}`
}
WeatherCard {
title: "Precipitation"
symbol: "rainy_light"
value: WeatherService.data.precip
}
WeatherCard {
title: "Humidity"
symbol: "humidity_low"
value: WeatherService.data.humidity
}
WeatherCard {
title: "Visibility"
symbol: "visibility"
value: WeatherService.data.visib
}
WeatherCard {
title: "Pressure"
symbol: "readiness_score"
value: WeatherService.data.press
}
WeatherCard {
title: "Sunrise"
symbol: "wb_twilight"
value: WeatherService.data.sunrise
}
WeatherCard {
title: "Sunset"
symbol: "bedtime"
value: WeatherService.data.sunset
}
}
}
}