- 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.
56 lines
1.9 KiB
QML
56 lines
1.9 KiB
QML
import QtQuick 2.6
|
|
import Sailfish.Silica 1.0
|
|
|
|
// Assenza con le date (richiesta dell'utente, 11/10/2026): si scelgono inizio e
|
|
// fine e il comando parte solo quando si accetta. La "fine" e' il giorno in cui
|
|
// l'impianto ricomincia a scaldare: nell'uso di Carlo, il giorno prima del
|
|
// rientro. Durante l'assenza la casa resta a 15 °C.
|
|
Dialog {
|
|
id: away
|
|
|
|
property date inizio: new Date()
|
|
property date fine: new Date(Date.now() + 7 * 24 * 3600000)
|
|
|
|
// Non si accetta una fine che non viene dopo l'inizio: il bridge la
|
|
// respingerebbe comunque, ed e' meglio non far partire il comando.
|
|
canAccept: away.fine > away.inizio
|
|
|
|
Column {
|
|
width: parent.width
|
|
|
|
DialogHeader {
|
|
title: qsTr("Away mode")
|
|
acceptText: qsTr("Activate")
|
|
}
|
|
|
|
ValueButton {
|
|
label: qsTr("From")
|
|
value: Qt.formatDate(away.inizio, Qt.SystemLocaleShortDate)
|
|
onClicked: {
|
|
var scelta = pageStack.push("Sailfish.Silica.DatePickerDialog",
|
|
{ "date": away.inizio })
|
|
scelta.accepted.connect(function() { away.inizio = scelta.date })
|
|
}
|
|
}
|
|
|
|
ValueButton {
|
|
label: qsTr("To")
|
|
value: Qt.formatDate(away.fine, Qt.SystemLocaleShortDate)
|
|
onClicked: {
|
|
var scelta = pageStack.push("Sailfish.Silica.DatePickerDialog",
|
|
{ "date": away.fine })
|
|
scelta.accepted.connect(function() { away.fine = scelta.date })
|
|
}
|
|
}
|
|
|
|
Label {
|
|
x: Theme.horizontalPageMargin
|
|
width: parent.width - 2 * Theme.horizontalPageMargin
|
|
text: qsTr("The house stays at 15 °C and starts heating again on the day chosen as \"To\".")
|
|
wrapMode: Text.WordWrap
|
|
color: Theme.secondaryColor
|
|
font.pixelSize: Theme.fontSizeExtraSmall
|
|
}
|
|
}
|
|
}
|