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"; in property <string> : "cloud";
*/ */
import { Palette } from "std-widgets.slint"; import { Palette, HorizontalBox, VerticalBox } from "std-widgets.slint";
export struct WeatherData { export struct WeatherData {
kind: string, kind: string,
label: string, label: string,
@@ -31,18 +31,93 @@ export component Climate inherits Rectangle {
in property <WeatherData> weather; in property <WeatherData> weather;
in property <bool> is-night; in property <bool> is-night;
Text { HorizontalBox {
text: "\{weather.temperature}\{weather.temperature-unit}"; if weather.kind == "sun": Image {
font-size: 72px; colorize: Palette.foreground;
font-weight: 700; width: 120px;
vertical-alignment: center; 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 { VerticalBox {
text: weather.label; Text {
font-size: 24px; text: "\{weather.temperature}\{weather.temperature-unit}";
font-weight: 500; font-size: 36px;
vertical-alignment: center; font-weight: 700;
vertical-alignment: center;
}
Text {
text: weather.label;
font-size: 24px;
font-weight: 500;
vertical-alignment: center;
}
}
} }
// Text { // Text {
@@ -53,75 +128,4 @@ export component Climate inherits Rectangle {
// font-weight: 700; // font-weight: 700;
// vertical-alignment: center; // 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;
}
} }