-
Notifications
You must be signed in to change notification settings - Fork 0
/
AutosequenceButton.qml
149 lines (132 loc) · 3.95 KB
/
AutosequenceButton.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FrameHandlerEnums
import SensorEnums
import HPSensorEnums
import ValveEnums
import NodeIDEnums
import AutosequenceEnums
import TankPressControllerEnums
import EngineControllerEnums
import LoggerEnums
Item {
id: autosequenceButton
width: 50
height: 65
property string buttonOffName: "N/A"
property string buttonOnName: "N/A"
property color fontOnColorFromMain: "sandybrown"
property color fontOffColorFromMain: "sandybrown"
property color buttonOffColorFromMain: "gray"
property color buttonOnColorFromMain: "lawngreen"
property int fontSize: 12
//property bool isOverrideButton: false
state: "off"
//property string prevState: "0"
property string vehicleStateEngineNode: "0"
property string vehicleStatePropNode: "0" //probably need just one since it depends on the node sync status anyway
property string vehicleStateOnFlag: "0"
property alias autosequenceMouseAreaForMain: autosequenceMouseArea
onStateChanged: {
}
Connections { // MIGHT BE WRONG, ISSUES MAY ARISE
target: frameHandler
onNodeSyncStatusChanged:
{
if (frameHandler.nodeSyncStatus === FrameHandlerEnums.IN_SYNC) //probably need just one since it depends on the node sync status anyway
{
if (vehicleStateEngineNode !== vehicleStateOnFlag)
{
autosequenceButton.state = "off"
}
else //if (vehicleStateEngineNode === vehicleStateOnFlag)
{
autosequenceButton.state = "on"
}
}
else (frameHandler.nodeSyncStatus === FrameHandlerEnums.NOT_IN_SYNC)
{
}
}
}
Rectangle {
id: autosequenceRectangle
anchors.fill: parent
radius: 5
//color: "gray"
MouseArea {
id: autosequenceMouseArea
anchors.fill: parent
hoverEnabled: true
enabled: true
onPressed: {
buttonScaleUp.start();
}
onReleased: {
buttonScaleDown.start();
}
}
Label {
id: autosequenceLabel
text: autosequenceButton.buttonOffName
color: "white"
anchors.verticalCenter: parent.verticalCenter
horizontalAlignment: Text.AlignHCenter
font.bold: true
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: fontSize
}
ScaleAnimator{
id: buttonScaleUp // when hover over the valve
target: autosequenceRectangle
from: 1
to: 1.15
duration: 35 // Set this low
running: false
}
ScaleAnimator{
id: buttonScaleDown // when cursor exits the valve
target: autosequenceRectangle
from: 1.15
to: 1
duration: 35 // Set this low
running: false
}
}
states: [
State {
name: "off"
PropertyChanges {
target: autosequenceRectangle
color: buttonOffColorFromMain
}
PropertyChanges {
target: autosequenceLabel
color: fontOffColorFromMain
text: buttonOffName
}
},
State {
name: "on"
PropertyChanges {
target: autosequenceRectangle
color: buttonOnColorFromMain
}
PropertyChanges {
target: autosequenceLabel
color: fontOnColorFromMain
text: buttonOnName
}
}
/*
State {
name: "error"
PropertyChanges {
target: autosequenceRectangle
color: "darkorange"
}
}
*/
]
}