Files
illogical-impulse/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml
T
2025-11-22 22:11:31 +01:00

55 lines
1.4 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Services.Pipewire
import qs
import qs.services
import qs.modules.common
import qs.modules.common.functions
import qs.modules.common.widgets
import qs.modules.waffle.looks
import qs.modules.waffle.actionCenter
RowLayout {
id: root
required property PwNode node
property alias icon: iconButton.iconName
property alias monochrome: iconButton.monochrome
monochrome: false
PwObjectTracker { // Necessary for useful info to be present in 'node'
objects: [root.node]
}
WPanelIconButton {
id: iconButton
iconName: WIcons.audioAppIcon(root.node)
onClicked: root.node.audio.muted = !root.node?.audio.muted
FluentIcon {
id: muteIcon
visible: root.node?.audio.muted ?? false
anchors {
bottom: parent.bottom
right: parent.right
margins: -1
}
implicitSize: 16
icon: "speaker-mute"
}
WToolTip {
extraVisibleCondition: iconButton.shouldShowTooltip
text: Audio.appNodeDisplayName(root.node)
}
}
WSlider {
Layout.fillWidth: true
Layout.rightMargin: 10
value: root.node?.audio.volume ?? 0
onMoved: root.node.audio.volume = value
}
}