Warning, /plasma/plasma-bigscreen/kcms/audio-device-chooser/ui/delegates/AudioDelegate.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2019 Aditya Mehra <aix.m@outlook.com> 0003 SPDX-FileCopyrightText: 2019 Marco Martin <mart@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 2.14 0009 import QtQuick.Layouts 1.14 0010 import QtQuick.Controls 2.14 0011 import org.kde.plasma.components 3.0 as PlasmaComponents 0012 import org.kde.kirigami 2.12 as Kirigami 0013 import org.kde.mycroft.bigscreen 1.0 as BigScreen 0014 import Qt5Compat.GraphicalEffects 0015 import org.kde.plasma.private.volume 0.1 0016 import "../code/icon.js" as Icon 0017 0018 BigScreen.AbstractDelegate { 0019 id: delegate 0020 property bool isPlayback: type.substring(0, 4) == "sink" 0021 property bool onlyOne: false 0022 readonly property var currentPort: Ports[ActivePortIndex] 0023 property string type 0024 property bool isDefaultDevice: deviceDefaultIcon.visible 0025 signal setDefault 0026 0027 property var hasVolume: HasVolume 0028 property bool volumeWritable: VolumeWritable 0029 property var muted: Muted 0030 property var vol: Volume 0031 property var pObject: PulseObject 0032 property int focusMarginWidth: listView.currentIndex == index && delegate.activeFocus ? contentLayout.width : contentLayout.width - Kirigami.Units.gridUnit 0033 0034 implicitWidth: listView.cellWidth * 2.5 0035 implicitHeight: listView.height + Kirigami.Units.largeSpacing 0036 0037 Behavior on implicitWidth { 0038 NumberAnimation { 0039 duration: Kirigami.Units.longDuration 0040 easing.type: Easing.InOutQuad 0041 } 0042 } 0043 0044 Keys.onReturnPressed: { 0045 listView.currentIndex = index 0046 settingsViewDetails.currentItem.forceActiveFocus() 0047 } 0048 0049 onClicked: { 0050 listView.currentIndex = index 0051 settingsViewDetails.forceActiveFocus() 0052 } 0053 0054 contentItem: Item { 0055 id: contentItemLayout 0056 0057 Kirigami.Icon { 0058 id: deviceAudioSvgIcon 0059 width: Kirigami.Units.iconSizes.huge 0060 height: width 0061 y: contentItemLayout.height/2 - deviceAudioSvgIcon.height/2 0062 source: Icon.name(Volume, Muted, isPlayback ? "audio-volume" : "microphone-sensitivity") 0063 } 0064 0065 ColumnLayout { 0066 id: textLayout 0067 0068 anchors { 0069 left: deviceAudioSvgIcon.right 0070 right: contentItemLayout.right 0071 top: deviceAudioSvgIcon.top 0072 bottom: deviceAudioSvgIcon.bottom 0073 leftMargin: Kirigami.Units.smallSpacing 0074 } 0075 0076 PlasmaComponents.Label { 0077 id: deviceTypeLabel 0078 Layout.fillWidth: true 0079 visible: text.length > 0 0080 elide: Text.ElideRight 0081 wrapMode: Text.WordWrap 0082 horizontalAlignment: Text.AlignHCenter 0083 maximumLineCount: 2 0084 textFormat: Text.PlainText 0085 color: Kirigami.Theme.textColor 0086 font.pixelSize: textMetrics.font.pixelSize * 1 0087 text: currentPort.description 0088 } 0089 0090 PlasmaComponents.Label { 0091 id: deviceNameLabel 0092 Layout.fillWidth: true 0093 visible: text.length > 0 0094 elide: Text.ElideRight 0095 wrapMode: Text.WordWrap 0096 horizontalAlignment: Text.AlignHCenter 0097 maximumLineCount: 2 0098 textFormat: Text.PlainText 0099 color: Kirigami.Theme.textColor 0100 font.pixelSize: textMetrics.font.pixelSize * 0.8 0101 text: Description 0102 } 0103 } 0104 0105 Item { 0106 id: deviceDefaultRepresentationLayout 0107 anchors.right: parent.right 0108 anchors.bottom: parent.bottom 0109 anchors.rightMargin: Kirigami.Units.largeSpacing 0110 anchors.bottomMargin: Kirigami.Units.largeSpacing 0111 0112 Kirigami.Icon { 0113 id: deviceDefaultIcon 0114 anchors.centerIn: parent 0115 width: listView.currentIndex == index && delegate.activeFocus ? Kirigami.Units.iconSizes.medium : Kirigami.Units.iconSizes.smallMedium 0116 height: listView.currentIndex == index && delegate.activeFocus ? Kirigami.Units.iconSizes.medium : Kirigami.Units.iconSizes.smallMedium 0117 source: Qt.resolvedUrl("../images/green-tick-thick.svg") 0118 opacity: model.PulseObject.default ? 1 : 0 0119 } 0120 } 0121 } 0122 }