Mode Énergie dans detail_batterie.qml (barres + comparatif) ; axes X unifiés (quadrillage+étiquettes) sur les 4 pages de détail, espacement adapté par période

This commit is contained in:
2026-08-27 10:11:35 +02:00
parent 85ba4be46b
commit 81968d8900
8 changed files with 352 additions and 256 deletions
+38
View File
@@ -159,3 +159,41 @@ void DataProvider::get_mesures(const QString &type, int id, int periode, const Q
emit mesuresRecues(type, id, periode, variable, obj);
});
}
void DataProvider::get_energie(const QString &type, int id, int periode)
{
if (m_replyEnergieEnCours) m_replyEnergieEnCours->abort();
QUrl url(m_baseUrl + "/energie");
QUrlQuery query;
query.addQueryItem("type", type);
query.addQueryItem("id", QString::number(id));
query.addQueryItem("periode", QString::number(periode));
url.setQuery(query);
QNetworkRequest request(url);
request.setTransferTimeout(8000);
auto reply = m_manager.get(request);
m_replyEnergieEnCours = reply;
connect(reply, &QNetworkReply::finished, this, [this, reply, type, id, periode]() {
reply->deleteLater();
if (m_replyEnergieEnCours == reply) m_replyEnergieEnCours = nullptr;
if (reply->error() == QNetworkReply::OperationCanceledError) return;
if (reply->error() != QNetworkReply::NoError) {
signalerEchec();
emit erreur(reply->errorString());
return;
}
const auto doc = QJsonDocument::fromJson(reply->readAll());
const auto obj = doc.object();
if (obj["status"].toString() != "ok") {
signalerEchec();
emit erreur(obj["message"].toString());
return;
}
signalerSucces();
emit energieRecue(type, id, periode, obj);
});
}