Warning, /multimedia/elisa/src/qml/VolumeSlider.qml is written in an unsupported language. File is not indexed.

0001 /*
0002    SPDX-FileCopyrightText: 2016 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr>
0003    SPDX-FileCopyrightText: 2021 (c) Devin Lin <espidev@gmail.com>
0004 
0005    SPDX-License-Identifier: LGPL-3.0-or-later
0006  */
0007 
0008 import QtQuick 2.7
0009 import QtQuick.Layouts 1.2
0010 import QtQuick.Controls 2.3
0011 import org.kde.kirigami 2.5 as Kirigami
0012 import org.kde.elisa 1.0
0013 
0014 AccessibleSlider {
0015     id: volumeSlider
0016 
0017     property bool muted
0018 
0019     from: 0
0020     to: 100
0021 
0022     keyStepSize: 1
0023     wheelStepSize: 5
0024 
0025     enabled: !muted
0026 
0027     Accessible.name: i18nc("@label", "Volume")
0028 
0029     onPressedChanged: {
0030         tooltip.delay = pressed ? 0 : Kirigami.Units.toolTipDelay
0031     }
0032 
0033     MouseArea {
0034         id: sliderMouseArea
0035         anchors.fill: parent
0036         acceptedButtons: Qt.NoButton
0037         hoverEnabled: true
0038     }
0039 
0040     ToolTip {
0041         id: tooltip
0042         x: volumeSlider.visualPosition * volumeSlider.width - width / 2
0043         visible: volumeSlider.pressed || sliderMouseArea.containsMouse
0044         // delay is actually handled in volumeSlider.onPressedChanged, because property bindings aren't immediate
0045         delay: volumeSlider.pressed ? 0 : Kirigami.Units.toolTipDelay
0046         closePolicy: Popup.NoAutoClose
0047         timeout: -1
0048         text: i18nc("Volume as a percentage", "%1%", Math.round(volumeSlider.value))
0049     }
0050 }