Fix energy charts with old Qt versions
parent
236f0727fc
commit
21661124ab
|
|
@ -9,7 +9,6 @@ NYMEA_LOGGING_CATEGORY(dcEnergyLogs, "EnergyLogs")
|
|||
|
||||
EnergyLogEntry::EnergyLogEntry(QObject *parent): QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
EnergyLogEntry::EnergyLogEntry(const QDateTime ×tamp, 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()
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in New Issue