Changeset View
Changeset View
Standalone View
Standalone View
applet/contents/ui/ListItemBase.qml
Show First 20 Lines • Show All 178 Lines • ▼ Show 20 Line(s) | 178 | PlasmaComponents.Slider { | |||
---|---|---|---|---|---|
179 | id: slider | 179 | id: slider | ||
180 | 180 | | |||
181 | // Helper properties to allow async slider updates. | 181 | // Helper properties to allow async slider updates. | ||
182 | // While we are sliding we must not react to value updates | 182 | // While we are sliding we must not react to value updates | ||
183 | // as otherwise we can easily end up in a loop where value | 183 | // as otherwise we can easily end up in a loop where value | ||
184 | // changes trigger volume changes trigger value changes. | 184 | // changes trigger volume changes trigger value changes. | ||
185 | property int volume: Volume | 185 | property int volume: Volume | ||
186 | property bool ignoreValueChange: true | 186 | property bool ignoreValueChange: true | ||
187 | property bool forceRaiseMaxVolume: false | 187 | property bool forceRaiseMaxVolume: maxVolumeList.indexOf(maxVolumeTarget) != -1 | ||
188 | readonly property bool raiseMaxVolume: forceRaiseMaxVolume || volume >= PulseAudio.NormalVolume * 1.01 | 188 | readonly property bool raiseMaxVolume: forceRaiseMaxVolume || volume >= PulseAudio.NormalVolume * 1.01 | ||
189 | 189 | | |||
190 | Layout.fillWidth: true | 190 | Layout.fillWidth: true | ||
191 | minimumValue: PulseAudio.MinimalVolume | 191 | minimumValue: PulseAudio.MinimalVolume | ||
192 | maximumValue: raiseMaxVolume ? PulseAudio.MaximalVolume : PulseAudio.NormalVolume | 192 | maximumValue: raiseMaxVolume ? PulseAudio.MaximalVolume : PulseAudio.NormalVolume | ||
193 | stepSize: maximumValue / (maximumValue / PulseAudio.NormalVolume * 100.0) | 193 | stepSize: maximumValue / (maximumValue / PulseAudio.NormalVolume * 100.0) | ||
194 | visible: HasVolume | 194 | visible: HasVolume | ||
195 | enabled: VolumeWritable | 195 | enabled: VolumeWritable | ||
▲ Show 20 Lines • Show All 111 Lines • ▼ Show 20 Line(s) | 306 | function loadDynamicActions() { | |||
307 | contextMenu.clearMenuItems(); | 307 | contextMenu.clearMenuItems(); | ||
308 | 308 | | |||
309 | // Raise max volume | 309 | // Raise max volume | ||
310 | menuItem = newMenuItem(); | 310 | menuItem = newMenuItem(); | ||
311 | menuItem.text = i18n("Raise maximum volume"); | 311 | menuItem.text = i18n("Raise maximum volume"); | ||
312 | menuItem.checkable = true; | 312 | menuItem.checkable = true; | ||
313 | menuItem.checked = slider.forceRaiseMaxVolume; | 313 | menuItem.checked = slider.forceRaiseMaxVolume; | ||
314 | menuItem.clicked.connect(function() { | 314 | menuItem.clicked.connect(function() { | ||
315 | slider.forceRaiseMaxVolume = !slider.forceRaiseMaxVolume; | 315 | if (maxVolumeTarget) { | ||
316 | var idx = maxVolumeList.indexOf(maxVolumeTarget); | ||||
317 | if (idx === -1) { | ||||
318 | maxVolumeList.push(maxVolumeTarget); | ||||
319 | } else { | ||||
320 | maxVolumeList.splice(idx, 1); | ||||
321 | } | ||||
322 | plasmoid.configuration.maxVolumeList = maxVolumeList; | ||||
323 | } | ||||
316 | if (!slider.forceRaiseMaxVolume && Volume > PulseAudio.NormalVolume) { | 324 | if (!slider.forceRaiseMaxVolume && Volume > PulseAudio.NormalVolume) { | ||
317 | Volume = PulseAudio.NormalVolume; | 325 | Volume = PulseAudio.NormalVolume; | ||
318 | } | 326 | } | ||
319 | }); | 327 | }); | ||
320 | contextMenu.addMenuItem(menuItem); | 328 | contextMenu.addMenuItem(menuItem); | ||
321 | 329 | | |||
322 | // Switch all streams of the relevant kind to this device | 330 | // Switch all streams of the relevant kind to this device | ||
323 | if (type == "source") { | 331 | if (type == "source") { | ||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |