-
- Timer {
- id: volume_timer
- interval: 5000; running: false; repeat: false
- onTriggered: displayVolume = false
- }
-
- states: [
- State { when: displayVolume;
- PropertyChanges { target: master_volume; opacity: 1.0 }
- PropertyChanges { target: slider; enabled: true }
- PropertyChanges { target: logo_image; opacity: 0.0 }
- },
- State { when: !displayVolume;
- PropertyChanges { target: master_volume; opacity: 0.0 }
- PropertyChanges { target: slider; enabled: false }
- PropertyChanges { target: logo_image; opacity: 1.0 }
- }
- ]
-
- transitions: Transition {
- NumberAnimation { property: "opacity"; duration: 500}
- }
-
- MasterVolume {
- id: mv
- objectName: "mv"
- onVolumeChanged: slider.value = volume
- }
-
- Item {
- id: master_volume
- anchors.fill: parent
- anchors.centerIn: parent
- visible: false
-
- Label {
- font.pixelSize: 36
- anchors.horizontalCenter: parent.horizontalCenter
- color: "white"
- text: "Master Volume"
- }
-
- RowLayout {
- anchors.fill: parent
- anchors.centerIn: parent
- anchors.margins: 20
- spacing: 20
- Label {
- font.pixelSize: 36
- color: "white"
- text: "0 %"
- }
- Slider {
- id: slider
- Layout.fillWidth: true
- from: 0
- to: 65536
- stepSize: 256
- snapMode: Slider.SnapOnRelease
- onValueChanged: mv.volume = value
- Component.onCompleted: value = mv.volume
- onPressedChanged: {
- if (pressed) {volume_timer.stop()}
- else {volume_timer.restart()}
- }
- background: Rectangle {
- id: slider_bg
- height: 16
- color: "#59FF7F"
- }
- handle: Rectangle {
- anchors.verticalCenter: slider_bg.verticalCenter
- width: 48
- height: 48
- radius: 24
- x: slider.leftPadding + slider.visualPosition * (slider.availableWidth - width)
- y: slider.topPadding + slider.availableHeight / 2 - height / 2
- color: "white"
- }
- }
- Label {
- font.pixelSize: 36
- color: "white"
- text: "100 %"
- }
- }
- }