0.7.0: assenza con date, conto alla rovescia del boost, catalogo rifatto

- AwayDialog.qml: popup con inizio e fine (Dialog, ValueButton,
  DatePickerDialog: componenti e proprieta' verificati nella guida Silica
  dell'SDK). Il tasto Assenza apre il popup invece di mandare il comando;
- conto alla rovescia 30:00 -> 00:00 in Home e in copertina, con i secondi
  dell'impianto (AiraJson::countdown + timer che si riallinea a ogni lettura);
- commandPayload accetta campi extra (start/end);
- catalogo: lupdate leggeva solo i C++ e marcava 151 voci QML come obsolete.
  Ora src e qml espliciti: 197 stringhe, 0 non tradotte;
- versione 0.7.0 (spec, main.cpp), PROTOCOL, README/PIANO, post per il forum.
This commit is contained in:
Carlo
2026-10-11 12:05:59 +02:00
parent 6ef6f5bfd8
commit d2cb9d692f
17 changed files with 481 additions and 80 deletions
+22 -2
View File
@@ -223,6 +223,18 @@ Page {
}
}
// Conto alla rovescia del boost, da 30:00 a 00:00 (richiesta
// dell'utente): si vede solo mentre il boost e' in corso.
Label {
visible: api.configured && api.boostActive
x: Theme.horizontalPageMargin
width: parent.width - 2 * Theme.horizontalPageMargin
text: qsTr("Boost · %1").arg(api.boostCountdown)
color: Theme.highlightColor
font.pixelSize: Theme.fontSizeSmall
font.bold: true
}
Label {
visible: api.configured
x: Theme.horizontalPageMargin
@@ -272,8 +284,16 @@ Page {
remorse.execute(assenzaBtn, qsTr("Away mode off"),
function() { api.sendCommand("away_mode_off") })
} else {
remorse.execute(assenzaBtn, qsTr("Away mode on"),
function() { api.sendCommand("away_mode_on") })
// L'assenza si imposta da un popup con le date
// (richiesta dell'utente): si apre qui e il comando
// parte solo se si accetta.
var scelta = pageStack.push(Qt.resolvedUrl("AwayDialog.qml"))
scelta.accepted.connect(function() {
api.sendCommand("away_mode_on", null, {
"start": Qt.formatDate(scelta.inizio, "yyyy-MM-dd"),
"end": Qt.formatDate(scelta.fine, "yyyy-MM-dd")
})
})
}
}
}