blob: a597c97942411b64b1139b54786e643fc35920e7 (
plain)
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
|
import QtQuick
import QtQuick.Controls
Item {
id: progress_next_cross
visible: false
// val [Input]
// distance to next cross. (unit = meter)
// when over the ProgressBar.maximumValue/m, progress bar indicates max (same as ProgressBar.maximumValue/m)
function setProgress(val) {
if ( (0 < val) && (val < bar.maximumValue ) ) {
bar.value = val
}else if ( bar.maximumValue < val ){
bar.value = bar.maximumValue
}else{
bar.value = 0
}
}
ProgressBar {
id: bar
width: 25
height: 100
rotation: 90
value: 0
from: 0
to: 300
background: Rectangle {
implicitWidth: 200
implicitHeight: 6
color: "#e6e6e6"
radius: 3
}
contentItem: Item {
implicitWidth: 200
implicitHeight: 4
// Progress indicator for determinate state.
Rectangle {
width: bar.visualPosition * parent.width
height: parent.height
radius: 2
color: "#17a81a"
visible: !bar.indeterminate
}
// Scrolling animation for indeterminate state.
Item {
anchors.fill: parent
visible: bar.indeterminate
clip: true
Row {
spacing: 20
Repeater {
model: bar.width / 40 + 1
Rectangle {
color: "#17a81a"
width: 20
height: bar.height
}
}
XAnimator on x {
from: 0
to: -40
loops: Animation.Infinite
running: bar.indeterminate
}
}
}
}
}
states: [
State {
name: "visible"; PropertyChanges { target: progress_next_cross; visible: true }},
State {
name: "invisible"; PropertyChanges { target: progress_next_cross; visible: false }}
]
}
|