Warning, /plasma/plasma-workspace/applets/cameraindicator/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2023 Fushan Wen <qydwhotmail@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick
0008 
0009 import org.kde.plasma.plasmoid
0010 import org.kde.plasma.core as PlasmaCore
0011 import org.kde.kirigami as Kirigami
0012 import org.kde.pipewire.monitor as Monitor
0013 
0014 PlasmoidItem {
0015     id: root
0016 
0017     switchWidth: Kirigami.Units.gridUnit * 12
0018     switchHeight: Kirigami.Units.gridUnit * 12
0019 
0020     toolTipSubText: if (!monitor.detectionAvailable) {
0021         return i18nc("@info:tooltip", "Camera indicator is unavailable");
0022     } else if (monitor.runningCount) {
0023         return i18ncp("@info:tooltip", "A camera is in use", "%1 cameras are in use", monitor.runningCount);
0024     } else {
0025         return i18nc("@info:tooltip", "No camera is in use");
0026     }
0027 
0028     Plasmoid.icon: if (!monitor.detectionAvailable) {
0029         return "network-disconnect-symbolic";
0030     } else if (monitor.idleCount > 0 && monitor.runningCount === 0) {
0031         return "camera-ready-symbolic";
0032     } else if (monitor.runningCount > 0) {
0033         return "camera-on-symbolic";
0034     } else {
0035         return "camera-off-symbolic";
0036     }
0037     Plasmoid.status: (monitor.idleCount > 0 || monitor.runningCount > 0) ? PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.HiddenStatus
0038 
0039     Monitor.MediaMonitor {
0040         id: monitor
0041         role: Monitor.MediaRole.Camera
0042     }
0043 
0044     fullRepresentation: FullRepresentation { }
0045 }