66 lines
2.1 KiB
QML
66 lines
2.1 KiB
QML
// Current conditions, at the foot of the date menu — GNOME's weather section.
|
|
//
|
|
// The whole card disappears when services/Weather.qml has nothing: a weather
|
|
// widget that cannot reach the network must go quiet, not show an error. The
|
|
// caller collapses the separator above it off the same `Weather.available`.
|
|
|
|
import QtQuick
|
|
import qs.config
|
|
import qs.services
|
|
|
|
Rectangle {
|
|
id: root
|
|
|
|
implicitHeight: 62
|
|
radius: Theme.cardRadius
|
|
// Cards inside an already-glass panel do not get a prism edge — the edge
|
|
// marks a pane of glass, not every item sitting on one.
|
|
border.width: 0
|
|
color: Theme.alpha(Theme.fg, 0.06)
|
|
|
|
Text {
|
|
id: glyph
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 16
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
text: Weather.icon
|
|
// fontMono is the Nerd Font, used here purely to draw an icon.
|
|
font.family: Theme.fontMono
|
|
font.pixelSize: 26
|
|
color: Theme.accentAlt
|
|
}
|
|
|
|
Column {
|
|
anchors.left: glyph.right
|
|
anchors.leftMargin: 14
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: 16
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
spacing: 2
|
|
|
|
Text {
|
|
width: parent.width
|
|
text: Math.round(Weather.temperature) + Weather.unitSuffix
|
|
color: Theme.fg
|
|
elide: Text.ElideRight
|
|
font.family: Theme.fontFamily
|
|
// The temperature changes in place on every refresh.
|
|
font.features: Theme.tabularFigures
|
|
font.pixelSize: Theme.fontSizeLarge
|
|
font.weight: Font.DemiBold
|
|
}
|
|
|
|
Text {
|
|
width: parent.width
|
|
// Description is empty for weather codes we don't have a label for,
|
|
// in which case the row is just the location.
|
|
text: Weather.description === "" ? Settings.weatherLocation : Weather.description + " · " + Settings.weatherLocation
|
|
color: Theme.fgDim
|
|
elide: Text.ElideRight
|
|
font.family: Theme.fontFamily
|
|
font.features: Theme.tabularFigures
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
}
|
|
}
|
|
}
|