mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-08-11 12:15:36 +08:00
Add volume sliders to AFV sample UI
This commit is contained in:
committed by
Mat Sutcliffe
parent
8d1eea25b1
commit
1deaf1ca8b
84
samples/afvclient/qml/LevelMeter.qml
Normal file
84
samples/afvclient/qml/LevelMeter.qml
Normal file
@@ -0,0 +1,84 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
import QtQuick.Controls 2.12
|
||||
|
||||
Item {
|
||||
id: levelMeter
|
||||
|
||||
property double value: 0.97
|
||||
property double peak: 0.0
|
||||
|
||||
width: 400
|
||||
height: 20
|
||||
|
||||
onValueChanged: {
|
||||
if(value < 0.0) {
|
||||
value = 0.0
|
||||
} else if (value > 1.0) {
|
||||
value = 1.0;
|
||||
}
|
||||
if (value > peak) {
|
||||
peak = value;
|
||||
peakTimer.start()
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
id: lowRangeDark
|
||||
width: levelMeter.width * 0.68
|
||||
height: parent.height
|
||||
color: "#002366"
|
||||
|
||||
Rectangle {
|
||||
id: lowRange
|
||||
width: Math.min(lowRangeDark.width, value * levelMeter.width)
|
||||
height: parent.height
|
||||
color: "#4169E1"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: midRangeDark
|
||||
width: levelMeter.width * 0.22
|
||||
height: parent.height
|
||||
color: "#114911"
|
||||
|
||||
Rectangle {
|
||||
id: midRange
|
||||
width: Math.min(midRangeDark.width, (value * levelMeter.width) - lowRangeDark.width)
|
||||
height: parent.height
|
||||
color: "#32CD32"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: highRangeDark
|
||||
width: levelMeter.width * 0.1
|
||||
height: parent.height
|
||||
color: "#760e0e"
|
||||
|
||||
Rectangle {
|
||||
id: highRange
|
||||
width: Math.min(highRangeDark.width, (value * levelMeter.width) - lowRangeDark.width - midRangeDark.width)
|
||||
height: parent.height
|
||||
color: "#FF4500"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: peakBar
|
||||
width: 3
|
||||
height: parent.height
|
||||
color: "#3edd9f"
|
||||
x: peak * levelMeter.width
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: peakTimer
|
||||
onTriggered: peak = 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user