/** SPDX-FileCopyrightText: 2022 Carson Black <uhhadd@gmail.com>** SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuick 2.10import QtQuick.Layouts 1.10import QtQuick.Controls 2.10import org.kde.plasma.core 2.0 as PlasmaCoreimport org.kde.plasma.components 3.0 as PC3import org.kde.kirigami 2.12 as KirigamiAbstractButton {id: controlRoothoverEnabled: trueKirigami.MnemonicData.controlType: Kirigami.MnemonicData.SecondaryControlKirigami.MnemonicData.label: controlRoot.textleftPadding: rest.margins.leftrightPadding: rest.margins.right// needed since icon property can't hold QIcon, which the tasks manager gives usproperty alias iconSource: iconItem.sourcebackground: Item {id: backgroundPlasmaCore.FrameSvgItem {id: restanchors.fill: parentvisible: !controlRoot.down && !controlRoot.hoveredimagePath: "widgets/menubaritem"prefix: "normal"}PlasmaCore.FrameSvgItem {id: hoveranchors.fill: parentvisible: !controlRoot.down && controlRoot.hoveredimagePath: "widgets/menubaritem"prefix: "hover"}PlasmaCore.FrameSvgItem {id: downanchors.fill: parentvisible: controlRoot.downimagePath: "widgets/menubaritem"prefix: "pressed"}}contentItem: RowLayout {PlasmaCore.IconItem {id: iconItemvisible: source !== "" && iconItem.validimplicitWidth: PlasmaCore.Units.roundToIconSize(label.implicitHeight)implicitHeight: PlasmaCore.Units.roundToIconSize(label.implicitHeight)Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter}// Fall back to a generic icon if the application doesn't provide a valid onePlasmaCore.IconItem {visible: !iconItem.validsource: "preferences-system-windows"implicitWidth: PlasmaCore.Units.roundToIconSize(label.implicitHeight)implicitHeight: PlasmaCore.Units.roundToIconSize(label.implicitHeight)Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter}PC3.Label {id: labelvisible: plasmoid.formFactor === PlasmaCore.Types.Horizontal && plasmoid.configuration.showTexttext: controlRoot.Kirigami.MnemonicData.richTextLabelverticalAlignment: Text.AlignVCenterLayout.fillHeight: true}}}