mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-25 14:02:53 -05:00
53 lines
1.4 KiB
QML
53 lines
1.4 KiB
QML
import QtQuick
|
|
import qs.Common
|
|
import qs.Services
|
|
import qs.Widgets
|
|
|
|
Column {
|
|
id: root
|
|
|
|
width: parent.width
|
|
spacing: Theme.spacingM
|
|
|
|
StyledText {
|
|
text: "Volume"
|
|
font.pixelSize: Theme.fontSizeLarge
|
|
color: Theme.surfaceText
|
|
font.weight: Font.Medium
|
|
}
|
|
|
|
DankSlider {
|
|
id: volumeSlider
|
|
|
|
width: parent.width
|
|
minimum: 0
|
|
maximum: 100
|
|
value: AudioService.sink.audio ? Math.round(AudioService.sink.audio.volume * 100) : 0
|
|
leftIcon: (AudioService.sink.audio && AudioService.sink.audio.muted) ? "volume_off" : "volume_down"
|
|
rightIcon: "volume_up"
|
|
enabled: !(AudioService.sink.audio && AudioService.sink.audio.muted)
|
|
showValue: true
|
|
unit: "%"
|
|
|
|
onSliderValueChanged: newValue => {
|
|
if (AudioService.sink?.ready && AudioService.sink.audio) {
|
|
AudioService.sink.audio.volume = newValue / 100
|
|
}
|
|
}
|
|
|
|
MouseArea {
|
|
x: 0
|
|
y: 0
|
|
width: Theme.iconSize
|
|
height: parent.height
|
|
hoverEnabled: true
|
|
cursorShape: Qt.PointingHandCursor
|
|
onClicked: {
|
|
if (AudioService.sink?.ready && AudioService.sink.audio) {
|
|
AudioService.sink.audio.muted = !AudioService.sink.audio.muted
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|