Warning, /plasma/plasma-desktop/applets/taskmanager/package/contents/ui/Badge.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2018 Kai Uwe Broulik <kde@privat.broulik.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick 2.15
0008 
0009 import org.kde.plasma.components 3.0 as PlasmaComponents3
0010 import org.kde.kirigami 2.20 as Kirigami
0011 
0012 // This top-level item is an opaque background that goes behind the colored
0013 // background, for contrast. It's not an Item since that it would be square,
0014 // and not round, as required here
0015 Rectangle {
0016     id: badgeRect
0017 
0018     property alias text: label.text
0019     property alias textColor: label.color
0020     property int number: 0
0021 
0022     implicitWidth: Math.max(height, Math.round(label.contentWidth + radius / 2)) // Add some padding around.
0023     implicitHeight: implicitWidth
0024 
0025     radius: height / 2
0026 
0027     color: Kirigami.Theme.backgroundColor
0028 
0029     // Colored background
0030     Rectangle {
0031         readonly property color color_: Kirigami.Theme.highlightColor
0032 
0033         anchors.fill: parent
0034         radius: height / 2
0035 
0036         color: Qt.rgba(color_.r, color_.g, color_.b, 0.3)
0037         border.color: color_
0038         border.width: 1
0039     }
0040 
0041     // Number
0042     PlasmaComponents3.Label {
0043         id: label
0044         anchors.centerIn: parent
0045         width: height
0046         height: Math.min(Kirigami.Units.gridUnit * 2, Math.round(parent.height))
0047         horizontalAlignment: Text.AlignHCenter
0048         verticalAlignment: Text.AlignVCenter
0049         fontSizeMode: Text.VerticalFit
0050         font.pointSize: 1024
0051         minimumPointSize: 5
0052         text: {
0053             if (badgeRect.number < 0) {
0054                 return i18nc("Invalid number of new messages, overlay, keep short", "—");
0055             } else if (badgeRect.number > 9999) {
0056                 return i18nc("Over 9999 new messages, overlay, keep short", "9,999+");
0057             } else {
0058                 return badgeRect.number.toLocaleString(Qt.locale(), 'f', 0);
0059             }
0060         }
0061         textFormat: Text.PlainText
0062     }
0063 }