-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathWaterNow.qml
92 lines (82 loc) · 2.14 KB
/
WaterNow.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import QtQuick 2.1
import qb.components 1.0
Tile {
id: waterMeter
QtObject {
id: p
property int currentFrame: 0
property int numFrames: 6
property int waterLevel: 0
property int flow: app.waterflow
function update() {
var newWaterLevel = 0;
var newNumFrames = 6;
var value = parseFloat((flow).toFixed(1));
if (isNaN(value)) {
waterValue.text = '-';
} else {
if (value > 0 && value < 3.5) {
newWaterLevel = 1;
} else if (value >= 3.5 && value < 7) {
newNumFrames = 5;
newWaterLevel = 2;
} else if (value >= 7 && value < 10.5) {
newWaterLevel = 3;
} else if (value >= 10.5 && value < 15) {
newWaterLevel = 4;
} else if (value >= 15) {
newWaterLevel = 5;
}
waterValue.text = i18n.number(value, 1, i18n.omit_trail_zeros) + " " + qsTr("liter(s)/min.", "", value);
}
if (waterLevel !== newWaterLevel) {
animationTimer.stop();
currentFrame = 0;
numFrames = newNumFrames;
waterLevel = newWaterLevel;
if (newWaterLevel > 0)
animationTimer.restart();
}
}
}
Component.onCompleted: {
p.update()
app.waterUpdated.connect(p.update)
}
onClicked: stage.openFullscreen(app.graphScreenUrl, {agreementType: "water", unitType: "energy", intervalType: "hours"})
Text {
id: waterWidgetText
color: dimmableColors.tileTitleColor
text:"Water nu"
anchors {
baseline: parent.top
baselineOffset: Math.round(30 * verticalScaling)
horizontalCenter: parent.horizontalCenter
}
font.pixelSize: qfont.tileTitle
font.family: qfont.regular.name
}
Image {
id: waterIcon
anchors.centerIn: parent
source: "image://scaled/apps/graph/drawables/"
+ "waterTapTile-l" + p.waterLevel + "-f" + (p.currentFrame+1) + (dimState ? "-dim" : "") + ".svg";
}
Text {
id: waterValue
color: dimmableColors.tileTextColor
anchors {
horizontalCenter: parent.horizontalCenter
baseline: parent.bottom
baselineOffset: designElements.vMarginNeg16
}
font.pixelSize: qfont.tileText
font.family: qfont.regular.name
}
Timer {
id: animationTimer
interval: 200
repeat: true
onTriggered: (p.currentFrame = ((p.currentFrame + 1) % p.numFrames))
}
}