/** SPDX-FileCopyrightText: 2022 Carson Black <uhhadd@gmail.com>** SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport QtQuick.Layoutsimport QtQuick.Controlsimport org.kde.plasma.core as PlasmaCoreimport org.kde.ksvg as KSvgimport org.kde.plasma.components as PC3import org.kde.kirigami as Kirigamiimport org.kde.plasma.plasmoidAbstractButton {id: controlRoothoverEnabled: trueleftPadding: 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: backgroundKSvg.FrameSvgItem {id: restanchors.fill: parentvisible: !controlRoot.down && !controlRoot.hoveredimagePath: "widgets/menubaritem"prefix: "normal"}KSvg.FrameSvgItem {id: hoveranchors.fill: parentvisible: !controlRoot.down && controlRoot.hoveredimagePath: "widgets/menubaritem"prefix: "hover"}KSvg.FrameSvgItem {id: downanchors.fill: parentvisible: controlRoot.downimagePath: "widgets/menubaritem"prefix: "pressed"}}contentItem: RowLayout {Kirigami.Icon {id: iconItemvisible: (Plasmoid.formFactor !== PlasmaCore.Types.Horizontal|| Plasmoid.configuration.showIcon) && source !== "" && iconItem.validimplicitWidth: Kirigami.Units.iconSizes.sizeForLabelsimplicitHeight: Kirigami.Units.iconSizes.sizeForLabelsLayout.alignment: Qt.AlignVCenter | Qt.AlignHCenter}// Fall back to a generic icon if the application doesn't provide a valid oneKirigami.Icon {visible: (Plasmoid.formFactor !== PlasmaCore.Types.Horizontal|| Plasmoid.configuration.showIcon) && !iconItem.validsource: "preferences-system-windows"implicitWidth: Kirigami.Units.iconSizes.sizeForLabelsimplicitHeight: Kirigami.Units.iconSizes.sizeForLabelsLayout.alignment: Qt.AlignVCenter | Qt.AlignHCenter}PC3.Label {id: labelvisible: Plasmoid.formFactor === PlasmaCore.Types.Horizontal && Plasmoid.configuration.showTexttext: controlRoot.textcolor: controlRoot.down || controlRoot.hovered ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColorverticalAlignment: Text.AlignVCenterelide: Text.ElideRightLayout.fillWidth: trueLayout.fillHeight: true}}}