0.6.0 blocco 2: Comandi impianto con interruttori, diagnostica in Impianto

- CommandsPage: 4 interruttori (TextSwitch) al posto di 8 pulsanti in coppie
  accendi/spegni, piu' 3 pulsanti per le azioni senza stato. Gli interruttori
  seguono il dato vero (automaticCheck: false), non anticipano l'impianto, e
  la sezione 'Stato attuale' non serve piu'.
- La pagina si chiama 'Comandi impianto'.
- PlantPage: frase estesa dello stato, diagnostica (verifica impianto) e le
  letture che non avevano posto (pompa, modi consentiti, manuale, sbrinamento,
  luci di firma).
- SettingsPage: 'Salva' e 'Prova connessione' diventano 'Salva e prova'.
- ApiClient: dopo un comando riuscito lo stato si rilegge da solo (prima non
  si aggiornava nulla: l'aggiornamento automatico non esisteva).
- NoticeBar anche su Dati, Impianto e Comandi; via i messaggi dentro il
  contenuto che scorre.
This commit is contained in:
2026-10-10 09:48:41 +02:00
parent d5b63b57df
commit 85702880d5
7 changed files with 331 additions and 308 deletions
+13
View File
@@ -17,6 +17,7 @@ ApiClient::ApiClient(Settings *settings, QObject *parent)
, m_stale(false)
, m_noticeIsError(false)
, m_noticeTimer(0)
, m_refreshTimer(0)
{
// Il messaggio dell'ultimo comando (o dell'ultimo errore) vale per ogni
// pagina: lo stato sta qui, si spegne da solo e la UI lo mostra ancorato
@@ -40,6 +41,18 @@ ApiClient::ApiClient(Settings *settings, QObject *parent)
setNotice(message, !ok);
});
// Dopo un comando riuscito lo stato si rilegge da solo: l'impianto applica
// in qualche istante, e senza questa rilettura gli interruttori della
// pagina dei comandi resterebbero indietro rispetto alla pompa.
m_refreshTimer = new QTimer(this);
m_refreshTimer->setSingleShot(true);
m_refreshTimer->setInterval(2000);
connect(m_refreshTimer, &QTimer::timeout, this, &ApiClient::refresh);
connect(this, &ApiClient::commandFinished, this, [this](bool ok, const QString &) {
if (ok)
m_refreshTimer->start();
});
if (m_settings) {
// La UI deve riflettere subito il passaggio da "non configurato" a
// "configurato" quando si salvano indirizzo o token.
+1
View File
@@ -105,6 +105,7 @@ private:
QString m_notice;
bool m_noticeIsError;
QTimer *m_noticeTimer;
QTimer *m_refreshTimer;
QVariantMap m_summary;
QVariantMap m_stats;
};