0.6.0: copertina con pallino di stato, numeri vecchi spenti ed etichetta esterna; catalogo 191/191
This commit is contained in:
+1
-1
@@ -161,7 +161,7 @@ python3 tests/ui_contract_check.py http://192.168.3.21:8790
|
|||||||
senza telefono)
|
senza telefono)
|
||||||
- **48/48** verifiche offline del bridge (`bridge/test_bridge_commands.py`),
|
- **48/48** verifiche offline del bridge (`bridge/test_bridge_commands.py`),
|
||||||
comprese le conversioni Wh→kWh e degli importi delle statistiche
|
comprese le conversioni Wh→kWh e degli importi delle statistiche
|
||||||
- **190/190** stringhe tradotte nel catalogo italiano: il test carica il `.qm`
|
- **191/191** stringhe tradotte nel catalogo italiano: il test carica il `.qm`
|
||||||
compilato come fa `main.cpp` e verifica che in inglese l'etichetta di stato sia
|
compilato come fa `main.cpp` e verifica che in inglese l'etichetta di stato sia
|
||||||
la sorgente e in italiano quella tradotta, e che togliendo il catalogo si torni
|
la sorgente e in italiano quella tradotta, e che togliendo il catalogo si torni
|
||||||
all'inglese
|
all'inglese
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ Verified so far:
|
|||||||
including that a zone command always carries every zone, that absurd values
|
including that a zone command always carries every zone, that absurd values
|
||||||
are refused (40 °C, zone 3, text), and the Wh→kWh / money conversions of the
|
are refused (40 °C, zone 3, text), and the Wh→kWh / money conversions of the
|
||||||
statistics
|
statistics
|
||||||
- **190/190** strings translated in the Italian catalogue, checked by loading
|
- **191/191** strings translated in the Italian catalogue, checked by loading
|
||||||
the compiled `.qm` in the test the same way `main.cpp` does: source English
|
the compiled `.qm` in the test the same way `main.cpp` does: source English
|
||||||
in, Italian out, and back to English when the catalogue is removed
|
in, Italian out, and back to English when the catalogue is removed
|
||||||
- numbers, amounts and month names formatted through `QLocale`, so the decimal
|
- numbers, amounts and month names formatted through `QLocale`, so the decimal
|
||||||
|
|||||||
+6
-1
@@ -275,8 +275,13 @@ si rilegge da solo (2 s): l'aggiornamento automatico, prima, non esisteva.
|
|||||||
|
|
||||||
**Stato breve ed esteso in C++** (`AiraJson::stateShort/stateLong/statusLevel`):
|
**Stato breve ed esteso in C++** (`AiraJson::stateShort/stateLong/statusLevel`):
|
||||||
logica pura, verificabile senza SDK e non duplicata fra Home e Impianto. Test
|
logica pura, verificabile senza SDK e non duplicata fra Home e Impianto. Test
|
||||||
del nucleo: **79/79** (erano 61). Stringhe: **190/190** tradotte. Anteprime
|
del nucleo: **79/79** (erano 61). Stringhe: **191/191** tradotte. Anteprime
|
||||||
rigenerate (nuova `regolazioni.png`) in italiano e inglese.
|
rigenerate (nuova `regolazioni.png`) in italiano e inglese.
|
||||||
|
|
||||||
|
**Copertina** (`qml/cover/CoverPage.qml`): pallino di stato come in Home, la
|
||||||
|
temperatura grande si spegne quando i numeri sono vecchi e l'etichetta finale è
|
||||||
|
diventata "esterna 18,0 °C" (era "est.", sigla che non diceva niente), con la
|
||||||
|
riga dei numeri vecchi al posto della temperatura esterna quando serve.
|
||||||
|
|
||||||
- Nessun comando nuovo all'impianto: anche questa versione resta **sola
|
- Nessun comando nuovo all'impianto: anche questa versione resta **sola
|
||||||
lettura** finché non si prova l'invio dal telefono.
|
lettura** finché non si prova l'invio dal telefono.
|
||||||
|
|||||||
+1
-1
@@ -26,7 +26,7 @@ P9, P10 (diagnostica in Impianto), P11.
|
|||||||
Rimandato: P8 (azioni sulla copertina), in attesa della prova sul telefono.
|
Rimandato: P8 (azioni sulla copertina), in attesa della prova sul telefono.
|
||||||
|
|
||||||
Verifiche fatte qui: **79 verifiche del nucleo** (erano 61), `qmllint` pulito su
|
Verifiche fatte qui: **79 verifiche del nucleo** (erano 61), `qmllint` pulito su
|
||||||
tutti i file QML, 190/190 stringhe tradotte, anteprime rigenerate in inglese e
|
tutti i file QML, 191/191 stringhe tradotte, anteprime rigenerate in inglese e
|
||||||
italiano, contratto dei dati fra UI e bridge rispettato
|
italiano, contratto dei dati fra UI e bridge rispettato
|
||||||
(`tests/ui_contract_check.py`).
|
(`tests/ui_contract_check.py`).
|
||||||
Da provare sul telefono: che `TextSwitch` si istanzi davvero, l'altezza reale
|
Da provare sul telefono: che `TextSwitch` si istanzi davvero, l'altezza reale
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 31 KiB |
+37
-5
@@ -11,15 +11,41 @@ CoverBackground {
|
|||||||
return api.formatValue(v)
|
return api.formatValue(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
// Colore del pallino: gli stessi criteri della Home (vedi MainPage.qml).
|
||||||
id: titleLabel
|
// Un dato vecchio e' ambra come un modo attivo: un dato vecchio non e' un
|
||||||
|
// dato buono, e la copertina e' il posto dove si guarda di sfuggita.
|
||||||
|
function statusColor() {
|
||||||
|
if (!api.hasData || api.stale)
|
||||||
|
return "orange"
|
||||||
|
var livello = api.statusLevel()
|
||||||
|
if (livello === 2)
|
||||||
|
return Theme.errorColor
|
||||||
|
if (livello === 1)
|
||||||
|
return Theme.highlightColor
|
||||||
|
return "#4caf50"
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: intestazione
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: Theme.paddingLarge
|
anchors.topMargin: Theme.paddingLarge
|
||||||
|
spacing: Theme.paddingSmall
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: Theme.paddingSmall
|
||||||
|
height: width
|
||||||
|
radius: width / 2
|
||||||
|
color: cover.statusColor()
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
text: "Aira"
|
text: "Aira"
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
font.pixelSize: Theme.fontSizeLarge
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
@@ -29,8 +55,9 @@ CoverBackground {
|
|||||||
Label {
|
Label {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
// Spenta quando i numeri sono vecchi: non deve sembrare fresca.
|
||||||
|
color: api.stale ? Theme.secondaryColor : Theme.primaryColor
|
||||||
text: cover.t("zone1_temperature") + " °C"
|
text: cover.t("zone1_temperature") + " °C"
|
||||||
color: Theme.primaryColor
|
|
||||||
font.pixelSize: Theme.fontSizeHuge
|
font.pixelSize: Theme.fontSizeHuge
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,8 +84,13 @@ CoverBackground {
|
|||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: Theme.paddingMedium
|
anchors.bottomMargin: Theme.paddingMedium
|
||||||
text: qsTr("outdoor %1 °C").arg(cover.t("outdoor_temperature"))
|
// Qui c'e' posto per dire che i numeri non sono freschi.
|
||||||
color: Theme.secondaryColor
|
text: api.stale
|
||||||
|
? qsTr("Not updated · last %1").arg(api.lastUpdate)
|
||||||
|
: qsTr("outside %1 °C").arg(cover.t("outdoor_temperature"))
|
||||||
|
color: api.stale ? "orange" : Theme.secondaryColor
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
width: parent.width - 2 * Theme.paddingMedium
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -557,6 +557,8 @@ def cover_screen() -> Image.Image:
|
|||||||
card = [96, 430, W - 96, 430 + 470]
|
card = [96, 430, W - 96, 430 + 470]
|
||||||
d.rounded_rectangle(card, radius=34, fill=(14, 18, 24), outline=ACCENT, width=2)
|
d.rounded_rectangle(card, radius=34, fill=(14, 18, 24), outline=ACCENT, width=2)
|
||||||
d.text((card[0] + 34, card[1] + 30), T("app"), font=font(40, bold=True), fill=PRIMARY)
|
d.text((card[0] + 34, card[1] + 30), T("app"), font=font(40, bold=True), fill=PRIMARY)
|
||||||
|
# pallino di stato, come nella copertina vera (verde = tutto regolare)
|
||||||
|
d.ellipse([card[2] - 56, card[1] + 48, card[2] - 32, card[1] + 72], fill=OK)
|
||||||
d.line([(card[0] + 34, card[1] + 100), (card[2] - 34, card[1] + 100)],
|
d.line([(card[0] + 34, card[1] + 100), (card[2] - 34, card[1] + 100)],
|
||||||
fill=BTN_EDGE, width=2)
|
fill=BTN_EDGE, width=2)
|
||||||
y = card[1] + 132
|
y = card[1] + 132
|
||||||
|
|||||||
@@ -281,7 +281,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/CommandsPage.qml" line="75"/>
|
<location filename="../qml/pages/CommandsPage.qml" line="75"/>
|
||||||
<source>Lowers the house and stops the hot water</source>
|
<source>Lowers the house and stops the hot water</source>
|
||||||
<translation>Abbassa la casa e spegne l'acqua calda</translation>
|
<translation>Abbassa la casa e spegne l'acqua calda</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/CommandsPage.qml" line="88"/>
|
<location filename="../qml/pages/CommandsPage.qml" line="88"/>
|
||||||
@@ -306,7 +306,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/CommandsPage.qml" line="121"/>
|
<location filename="../qml/pages/CommandsPage.qml" line="121"/>
|
||||||
<source>The heat pump keeps the water in temperature</source>
|
<source>The heat pump keeps the water in temperature</source>
|
||||||
<translation>Mantiene l'acqua in temperatura</translation>
|
<translation>Mantiene l'acqua in temperatura</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/pages/CommandsPage.qml" line="135"/>
|
<location filename="../qml/pages/CommandsPage.qml" line="135"/>
|
||||||
@@ -337,19 +337,24 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>CoverPage</name>
|
<name>CoverPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/cover/CoverPage.qml" line="40"/>
|
<location filename="../qml/cover/CoverPage.qml" line="67"/>
|
||||||
<source>house · target %1 °C</source>
|
<source>house · target %1 °C</source>
|
||||||
<translation>casa · obiettivo %1 °C</translation>
|
<translation>casa · obiettivo %1 °C</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/cover/CoverPage.qml" line="49"/>
|
<location filename="../qml/cover/CoverPage.qml" line="76"/>
|
||||||
<source>DHW %1 °C · target %2 °C</source>
|
<source>DHW %1 °C · target %2 °C</source>
|
||||||
<translation>ACS %1 °C · obiettivo %2 °C</translation>
|
<translation>ACS %1 °C · obiettivo %2 °C</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/cover/CoverPage.qml" line="60"/>
|
<location filename="../qml/cover/CoverPage.qml" line="89"/>
|
||||||
<source>outdoor %1 °C</source>
|
<source>Not updated · last %1</source>
|
||||||
<translation>est. %1 °C</translation>
|
<translation>Non aggiornato · ultimo %1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/cover/CoverPage.qml" line="90"/>
|
||||||
|
<source>outside %1 °C</source>
|
||||||
|
<translation>esterna %1 °C</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
|||||||
Reference in New Issue
Block a user