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:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user