// 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 } } }