Fix energy charts with old Qt versions

pull/970/head
Michael Zanetti 2023-02-14 00:15:18 +01:00
parent 236f0727fc
commit 21661124ab
5 changed files with 29 additions and 22 deletions

View File

@ -9,7 +9,6 @@ NYMEA_LOGGING_CATEGORY(dcEnergyLogs, "EnergyLogs")
EnergyLogEntry::EnergyLogEntry(QObject *parent): QObject(parent)
{
}
EnergyLogEntry::EnergyLogEntry(const QDateTime &timestamp, QObject *parent):
@ -26,6 +25,10 @@ QDateTime EnergyLogEntry::timestamp() const
EnergyLogs::EnergyLogs(QObject *parent) : QAbstractListModel(parent)
{
// Workaround for older Qt versions (5.12 and older) which can't deal with the QList<EnergyLogEntry*> argument
connect(this, &EnergyLogs::entriesAdded, this, [this](int index, const QList<EnergyLogEntry*> &entries){
emit entriesAddedIdx(index, entries.count());
});
}
EnergyLogs::~EnergyLogs()

View File

@ -104,7 +104,8 @@ signals:
void countChanged();
void entryAdded(int index, EnergyLogEntry *entry);
void entriesAdded(int index, const QList<EnergyLogEntry*> entries);
void entriesAdded(int index, const QList<EnergyLogEntry*> &entries);
void entriesAddedIdx(int index, int count);
void entriesRemoved(int index, int count);
void minValueChanged();

View File

@ -21,10 +21,10 @@ Item {
sampleRate: d.sampleRate
Component.onCompleted: fetchLogs()
onEntriesAdded: {
print("entries added", index, entries.length)
for (var i = 0; i < entries.length; i++) {
var entry = entries[i]
onEntriesAddedIdx: {
print("entries added", index, count)
for (var i = 0; i < count; i++) {
var entry = powerBalanceLogs.get(index + i)
// print("got entry", entry.timestamp)
zeroSeries.ensureValue(entry.timestamp)
@ -402,14 +402,14 @@ Item {
series.upperSeries.insert(idx, entry.timestamp.getTime(), baseValue + entry.currentPower)
}
function addEntries(index, entries) {
function addEntries(index, count) {
// print("adding entries for", thing.name)
// Remove the leading 0-value entry
series.lowerSeries.removePoints(0, 1);
series.upperSeries.removePoints(0, 1);
for (var i = 0; i < entries.length; i++) {
var entry = entries[i]
for (var i = 0; i < count; i++) {
var entry = logs.get(index + i)
// print("got thing entry", thing.name, entry.timestamp, entry.currentPower, index + i)
zeroSeries.ensureValue(entry.timestamp)
@ -434,8 +434,8 @@ Item {
thingId: consumerDelegate.thing.id
loader: logsLoader
onEntriesAdded: {
addTimer.addEntries(index, entries)
onEntriesAddedIdx: {
addTimer.addEntries(index, count)
}
onEntriesRemoved: {
@ -459,12 +459,12 @@ Item {
id: addTimer
interval: 1000
repeat: false
onTriggered: consumerDelegate.addEntries(index, entries)
onTriggered: consumerDelegate.addEntries(index, count)
property int index
property var entries
function addEntries(index, entries) {
property var count
function addEntries(index, count) {
addTimer.index = index
addTimer.entries = entries
addTimer.count = count
start()
}
}

View File

@ -80,11 +80,11 @@ Item {
Connections {
target: powerBalanceLogs
onEntriesAdded: {
// print("entries added", index, entries.length)
for (var i = 0; i < entries.length; i++) {
var entry = entries[i]
// print("got entry", entry.timestamp)
onEntriesAddedIdx: {
print("entries added", index, count)
for (var i = 0; i < count; i++) {
var entry = powerBalanceLogs.get(index + i)
print("got entry", entry.timestamp)
zeroSeries.ensureValue(entry.timestamp)
// For debugging, to see if the other maths line up with the plain production graph
@ -294,7 +294,7 @@ Item {
// borderWidth: 2
borderColor: color
name: qsTr("From self production")
opacity: d.selectedSeries == null || d.selectedSeries == selfProductionConsumptionSeries ? 1 : 0.3
// opacity: d.selectedSeries == null || d.selectedSeries == selfProductionConsumptionSeries ? 1 : 0.3
// visible: false
onClicked: d.selectedSeries(selfProductionConsumptionSeries)
@ -445,7 +445,7 @@ Item {
borderWidth: 0
borderColor: color
name: qsTr("From grid")
opacity: d.selectedSeries == null || d.selectedSeries == acquisitionSeries ? 1 : 0.3
// opacity: d.selectedSeries == null || d.selectedSeries == acquisitionSeries ? 1 : 0.3
// visible: false
onClicked: d.selectSeries(acquisitionSeries)
@ -478,9 +478,11 @@ Item {
return Math.abs(Math.min(0, entry.production))
}
function addEntry(entry) {
print("appending!", entry.timestamp, entry.value)
append(entry.timestamp.getTime(), calculateValue(entry))
}
function insertEntry(index, entry) {
print("inserting!", index, entry.timestamp, entry.value)
insert(index, entry.timestamp.getTime(), calculateValue(entry))
}
}

View File

@ -3,6 +3,7 @@
"kill": "nymea-app",
"qt_version": "5.12",
"build_args": "CONFIG+=ubports",
"ignore_review_errors": true,
"dependencies_target": [
"libavahi-client-dev",
"libavahi-common-dev",