Changeset View
Changeset View
Standalone View
Standalone View
src/kcm/package/contents/ui/VolumeSlider.qml
Show All 29 Lines | 27 | RowLayout { | |||
---|---|---|---|---|---|
30 | Slider { | 30 | Slider { | ||
31 | id: slider | 31 | id: slider | ||
32 | 32 | | |||
33 | // Helper properties to allow async slider updates. | 33 | // Helper properties to allow async slider updates. | ||
34 | // While we are sliding we must not react to value updates | 34 | // While we are sliding we must not react to value updates | ||
35 | // as otherwise we can easily end up in a loop where value | 35 | // as otherwise we can easily end up in a loop where value | ||
36 | // changes trigger volume changes trigger value changes. | 36 | // changes trigger volume changes trigger value changes. | ||
37 | property int volume: Volume | 37 | property int volume: Volume | ||
38 | property bool ignoreValueChange: false | 38 | property bool ignoreValueChange: true | ||
39 | 39 | | |||
40 | Layout.fillWidth: true | 40 | Layout.fillWidth: true | ||
41 | minimumValue: PulseAudio.MinimalVolume | 41 | minimumValue: PulseAudio.MinimalVolume | ||
42 | maximumValue: PulseAudio.MaximalVolume | 42 | maximumValue: PulseAudio.MaximalVolume | ||
43 | visible: HasVolume | 43 | visible: HasVolume | ||
44 | enabled: VolumeWritable | 44 | enabled: VolumeWritable | ||
45 | opacity: Muted ? 0.5 : 1 | 45 | opacity: Muted ? 0.5 : 1 | ||
46 | 46 | | |||
47 | Component.onCompleted: { | ||||
48 | ignoreValueChange = false; | ||||
49 | } | ||||
50 | | ||||
47 | onVolumeChanged: { | 51 | onVolumeChanged: { | ||
52 | var oldIgnoreValueChange = ignoreValueChange; | ||||
48 | ignoreValueChange = true; | 53 | ignoreValueChange = true; | ||
49 | value = Volume; | 54 | value = Volume; | ||
50 | ignoreValueChange = false; | 55 | ignoreValueChange = oldIgnoreValueChange; | ||
51 | } | 56 | } | ||
52 | 57 | | |||
53 | onValueChanged: { | 58 | onValueChanged: { | ||
54 | if (!ignoreValueChange) { | 59 | if (!ignoreValueChange) { | ||
55 | Volume = value; | 60 | Volume = value; | ||
56 | Muted = false; | 61 | Muted = false; | ||
57 | 62 | | |||
58 | if (!pressed) { | 63 | if (!pressed) { | ||
▲ Show 20 Lines • Show All 48 Lines • Show Last 20 Lines |