/*SPDX-FileCopyrightText: 2013-2015 Eike Hein <hein@kde.org>SPDX-License-Identifier: GPL-2.0-or-later*/import QtQuickimport org.kde.kirigami as Kirigamiimport org.kde.kquickcontrolsaddons as KQuickControlsAddonsimport org.kde.plasma.core as PlasmaCoreimport org.kde.plasma.plasmoidimport org.kde.plasma.components as PC3import "code/tools.js" as ToolsPC3.ToolButton {id: itemwidth: root.widthheight: root.widthsignal actionTriggered(string actionId, var actionArgument)signal aboutToShowActionMenu(var actionMenu)activeFocusOnTab: falsetext: model.displaydisplay: PC3.AbstractButton.IconOnlyicon.source: model.decorationproperty bool hasActionList: ((model.favoriteId !== null)|| (("hasActionList" in model) && (model.hasActionList !== null)))property int itemIndex: model.indexonAboutToShowActionMenu: actionMenu => {const actionList = (model.hasActionList !== null) ? model.actionList : [];Tools.fillActionMenu(i18n, actionMenu, actionList, repeater.model, model.favoriteId);}onActionTriggered: (actionId, actionArgument) => {if (Tools.triggerAction(repeater.model, model.index, actionId, actionArgument) === true) {kicker.expanded = false;}}function activate() : void {if (dragHandler.active) {return}repeater.model.trigger(index, "", null);kicker.expanded = false;}Keys.onSpacePressed: activate()Keys.onReturnPressed: activate()Keys.onEnterPressed: activate()onClicked: activate()function openActionMenu(visualParent, x, y) {aboutToShowActionMenu(actionMenu);actionMenu.visualParent = visualParent;actionMenu.open(x, y);}ActionMenu {id: actionMenuonActionClicked: (actionId, actionArgument) => {actionTriggered(actionId, actionArgument);}}DragHandler {id: dragHandlertarget: nullonActiveChanged: if (active) {item.contentItem.grabToImage(function(result) {item.Drag.imageSource = result.urlitem.Drag.active = true // using a binding can cause loop warnings when unexpanding})} else {item.Drag.active = false}}Drag.dragType: Drag.AutomaticDrag.mimeData: {"text/uri-list" : [model.url]}MouseArea {anchors.fill: parentacceptedButtons: Qt.RightButtononPressed: mouse => item.openActionMenu(item, mouse.x, mouse.y)}PC3.ToolTip.text: item.textPC3.ToolTip.visible: item,hoveredPC3.ToolTip.delay: Kirigami.Units.toolTipDelay}