shift-shell/components/mobileshell/qml/statusbar/indicators/SignalStrengthIndicator.qml
Marco Allegretti a3173160e2 Render shell-owned icons with theme masks
Use masked Kirigami icons with explicit theme colors for shell controls so the Shift icon theme renders reliably across light and dark surfaces. Replace the status-bar battery helper with theme icon names so battery glyphs also come from org.shift.icons.

Give the app-thumbnail close affordance a symbolic white X on a dark circular backing so it remains visible over previews.
2026-05-17 08:57:06 +02:00

57 lines
1.9 KiB
QML

/*
* SPDX-FileCopyrightText: 2021 Devin Lin <espidev@gmail.com>
* SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick
import QtQuick.Layouts
import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.kirigami as Kirigami
import org.kde.plasma.private.mobileshell as MobileShell
Item {
property InternetIndicator internetIndicator
// check if the internet indicator icon is a mobile data related one
readonly property bool isInternetIndicatorMobileData: internetIndicator && internetIndicator.icon && internetIndicator.icon.startsWith('network-mobile-')
property bool showLabel: true
property real textPixelSize: Kirigami.Units.gridUnit * 0.6
width: strengthIcon.width + label.width
Layout.minimumWidth: strengthIcon.width + label.width
Kirigami.Icon {
id: strengthIcon
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
width: height
height: parent.height
source: MobileShell.SignalStrengthInfo.icon
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
isMask: true
color: Kirigami.Theme.textColor
// don't show mobile indicator icon if the networkmanager one is already showing
visible: (!isInternetIndicatorMobileData || wirelessStatus.hotspotSSID.length !== 0) && MobileShell.SignalStrengthInfo.showIndicator
}
PlasmaComponents.Label {
id: label
visible: showLabel
width: visible ? implicitWidth : 0
anchors.leftMargin: Kirigami.Units.smallSpacing
anchors.left: strengthIcon.right
anchors.verticalCenter: parent.verticalCenter
text: MobileShell.SignalStrengthInfo.label
color: Kirigami.Theme.textColor
font.pixelSize: textPixelSize
}
}