1786192304

This commit is contained in:
2026-08-08 14:31:44 +02:00
parent b50df74bd0
commit 24b3e2f2ce

View File

@@ -5,7 +5,7 @@ in property <string> : "CONNECTING";
in property <string> : "cloud";
*/
import { Palette } from "std-widgets.slint";
import { Palette, HorizontalBox, VerticalBox } from "std-widgets.slint";
export struct WeatherData {
kind: string,
label: string,
@@ -31,18 +31,93 @@ export component Climate inherits Rectangle {
in property <WeatherData> weather;
in property <bool> is-night;
Text {
text: "\{weather.temperature}\{weather.temperature-unit}";
font-size: 72px;
font-weight: 700;
vertical-alignment: center;
}
HorizontalBox {
if weather.kind == "sun": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/sun.svg");
image-fit: contain;
}
if weather.kind == "cloud-sun" && !is-night: Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-sun.svg");
image-fit: contain;
}
if weather.kind == "cloud-sun" && is-night: Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-moon.svg");
image-fit: contain;
}
if weather.kind == "cloud": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud.svg");
image-fit: contain;
}
if weather.kind == "cloud-rain": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-rain.svg");
image-fit: contain;
}
if weather.kind == "cloud-rain-wind": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-rain-wind.svg");
image-fit: contain;
}
if weather.kind == "cloud-lightning": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-lightning.svg");
image-fit: contain;
}
if weather.kind == "snowflake": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/snowflake.svg");
image-fit: contain;
}
if weather.kind == "cloud-fog": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-fog.svg");
image-fit: contain;
}
if weather.kind == "moon": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/moon.svg");
image-fit: contain;
}
Text {
text: weather.label;
font-size: 24px;
font-weight: 500;
vertical-alignment: center;
VerticalBox {
Text {
text: "\{weather.temperature}\{weather.temperature-unit}";
font-size: 36px;
font-weight: 700;
vertical-alignment: center;
}
Text {
text: weather.label;
font-size: 24px;
font-weight: 500;
vertical-alignment: center;
}
}
}
// Text {
@@ -53,75 +128,4 @@ export component Climate inherits Rectangle {
// font-weight: 700;
// vertical-alignment: center;
// }
if weather.kind == "sun": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/sun.svg");
image-fit: contain;
}
if weather.kind == "cloud-sun" && !is-night: Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-sun.svg");
image-fit: contain;
}
if weather.kind == "cloud-sun" && is-night: Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-moon.svg");
image-fit: contain;
}
if weather.kind == "cloud": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud.svg");
image-fit: contain;
}
if weather.kind == "cloud-rain": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-rain.svg");
image-fit: contain;
}
if weather.kind == "cloud-rain-wind": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-rain-wind.svg");
image-fit: contain;
}
if weather.kind == "cloud-lightning": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-lightning.svg");
image-fit: contain;
}
if weather.kind == "snowflake": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/snowflake.svg");
image-fit: contain;
}
if weather.kind == "cloud-fog": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/cloud-fog.svg");
image-fit: contain;
}
if weather.kind == "moon": Image {
colorize: Palette.foreground;
width: 120px;
height: 105px;
source: @image-url("icons/moon.svg");
image-fit: contain;
}
}