diff --git a/components/mobileshell/qml/dataproviders/AudioInfo.qml b/components/mobileshell/qml/dataproviders/AudioInfo.qml index 08e7c336..9d2caf55 100644 --- a/components/mobileshell/qml/dataproviders/AudioInfo.qml +++ b/components/mobileshell/qml/dataproviders/AudioInfo.qml @@ -32,57 +32,13 @@ QtObject { // the maximum volume amount readonly property int maxVolumeValue: maxVolumePercent * PulseAudio.NormalVolume / 100 - // step that increments when adjusting the volume - readonly property int volumeStep: Math.round(5 * PulseAudio.NormalVolume / 100.0) - // The current audio volume (updated by connecting to sinks) - property int volumeValue + readonly property int volumeValue: PreferredDevice.sink ? (PreferredDevice.sink.volume / PulseAudio.NormalVolume) * 100 : 0 function isDummyOutput(output) { return output && output.name === dummyOutputName; } - function boundVolume(volume) { - return Math.max(PulseAudio.MinimalVolume, Math.min(volume, maxVolumeValue)); - } - - function volumePercent(volume, max){ - if (!max) { - max = PulseAudio.NormalVolume; - } - return Math.round(volume / max * maxVolumePercent); - } - - function increaseVolume() { - if (!PreferredDevice.sink || isDummyOutput(PreferredDevice.sink)) { - return; - } - - var volume = boundVolume(PreferredDevice.sink.volume + volumeStep); - var percent = volumePercent(volume, maxVolumeValue); - PreferredDevice.sink.muted = percent == 0; - PreferredDevice.sink.volume = volume; - } - - function decreaseVolume() { - if (!PreferredDevice.sink || isDummyOutput(PreferredDevice.sink)) { - return; - } - - var volume = boundVolume(PreferredDevice.sink.volume - volumeStep); - var percent = volumePercent(volume, maxVolumeValue); - PreferredDevice.sink.muted = percent == 0; - PreferredDevice.sink.volume = volume; - } - - function muteVolume() { - if (!PreferredDevice.sink || isDummyOutput(PreferredDevice.sink)) { - return; - } - - PreferredDevice.sink.muted = !PreferredDevice.sink.muted; - } - function iconName(volume, muted, prefix) { if (!prefix) { prefix = "audio-volume"; @@ -100,28 +56,4 @@ QtObject { } return icon; } - - property var updateVolume: Connections { - target: root.paSinkModel ? (PreferredDevice.sink ? PreferredDevice.sink : null) : null - enabled: target !== null - - function onVolumeChanged() { - root.volumeValue = root.volumePercent(PreferredDevice.sink.volume, root.maxVolumeValue); - } - - function onMutedChanged() { - root.volumeValue = PreferredDevice.sink.muted ? 0 : root.volumePercent(PreferredDevice.sink.volume, root.maxVolumeValue); - } - } - - property var updateVolumeOnSinkChange: Connections { - target: root.paSinkModel ? root.paSinkModel : null - enabled: target !== null - - function onPreferredSinkChanged() { - if (PreferredDevice.sink) { - root.volumeValue = root.volumePercent(PreferredDevice.sink.volume, root.maxVolumeValue); - } - } - } } diff --git a/quicksettings/audio/contents/ui/main.qml b/quicksettings/audio/contents/ui/main.qml index 8efafb3e..73c7e891 100644 --- a/quicksettings/audio/contents/ui/main.qml +++ b/quicksettings/audio/contents/ui/main.qml @@ -10,7 +10,12 @@ import org.kde.plasma.private.mobileshell.quicksettingsplugin as QS QS.QuickSetting { text: i18n("Sound") icon: MobileShell.AudioInfo.icon - status: i18n("%1%", MobileShell.AudioInfo.volumeValue) + status: { + if (!MobileShell.AudioInfo.isVisible) { + return i18n("No audio devices"); + } + return i18n("%1%", MobileShell.AudioInfo.volumeValue); + } enabled: false settingsCommand: "plasma-open-settings kcm_pulseaudio"