/*SPDX-FileCopyrightText: 2014 Weng Xuetian <wengxt@gmail.com>SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport org.kde.plasma.core as PlasmaCoreimport org.kde.plasma.components as PlasmaComponents3import org.kde.kirigami as KirigamiItem {id: statusIconrequired property string iconrequired property string labelrequired property string tiprequired property string hintsignal triggered(int /*Qt::MouseButton*/ button)readonly property int iconSize: Kirigami.Units.iconSizes.roundedIconSize(Math.min(width, height))opacity: hint === "disable" ? 0.3 : 1function extractLabelString(l: string): string {if (l.length >= 2 && l.charCodeAt(0) < 127 && l.charCodeAt(1) < 127) {return l.substring(0, 2);} else {return l.substring(0, 1);}}Kirigami.Icon {id: imageIconanchors.centerIn: parentwidth: statusIcon.iconSizeheight: statusIcon.iconSizescale: mouseArea.pressed ? 0.9 : 1source: statusIcon.iconvisible: statusIcon.icon.length > 0animated: false// active: mouseArea.containsMouse}PlasmaComponents3.Label {id: textIconanchors.centerIn: parentwidth: statusIcon.iconSizeheight: statusIcon.iconSizescale: mouseArea.pressed ? 0.9 : 1// a reasonable large size to make Text.Fit workminimumPointSize: 0font.pointSize: 1024fontSizeMode: Text.FitverticalAlignment: Text.AlignVCenterhorizontalAlignment: Text.AlignHCentertext: statusIcon.extractLabelString(statusIcon.label)textFormat: Text.PlainTextvisible: statusIcon.icon.length === 0}MouseArea {id: mouseAreaanchors.fill: parenthoverEnabled: trueacceptedButtons: Qt.LeftButton | Qt.RightButtononClicked: mouse => {statusIcon.triggered(mouse.button);}PlasmaCore.ToolTipArea {anchors.fill: parentmainText: statusIcon.labelsubText: statusIcon.tipicon: statusIcon.icon}}}