/*SPDX-FileCopyrightText: 2013 AurΓ©lien GΓ’teau <agateau@kde.org>SPDX-FileCopyrightText: 2014-2015 Eike Hein <hein@kde.org>SPDX-License-Identifier: GPL-2.0-or-later*/pragma ComponentBehavior: Boundimport QtQuickimport org.kde.plasma.core as PlasmaCoreimport org.kde.plasma.extras as PlasmaExtrasimport org.kde.plasma.plasmoidimport plasma.applet.org.kde.plasma.kimpanel as KimpanelItem {id: rootsignal showAction(string key)signal hideAction(string key)required property Kimpanel.Kimpanel helperproperty ContextMenuComponent menuproperty Item visualParentproperty variant actionListfunction open(item, actionItem) {visualParent = item;refreshMenu(actionItem);menu.openRelative();}function refreshMenu(actionItem) {if (menu) {menu.destroy();}menu = contextMenuComponent.createObject(root, {"actionItem": actionItem});if (actionList && actionList.length > 0) {menu.separator.visible = true;actionList.forEach(function(actionItem) {var item = contextMenuItemComponent.createObject(menu.showMenu, {"actionItem": actionItem,});});}}Component {id: contextMenuItemComponentPlasmaExtras.MenuItem {property variant actionItemtext: actionItem.labelicon: actionItem.icononClicked: {root.showAction(actionItem.key);}}}component ContextMenuComponent: PlasmaExtras.Menu {property variant actionItemproperty PlasmaExtras.MenuItem separatorproperty PlasmaExtras.Menu showMenu}Component {id: contextMenuComponentContextMenuComponent {id: menuvisualParent: root.visualParentseparator: separatorItemshowMenu: subShowMenuplacement: {if (Plasmoid.location === PlasmaCore.Types.LeftEdge) {return PlasmaExtras.Menu.RightPosedTopAlignedPopup;} else if (Plasmoid.location === PlasmaCore.Types.TopEdge) {return PlasmaExtras.Menu.BottomPosedLeftAlignedPopup;} else if (Plasmoid.location === PlasmaCore.Types.RightEdge) {return PlasmaExtras.Menu.LeftPosedTopAlignedPopup;} else {return PlasmaExtras.Menu.TopPosedLeftAlignedPopup;}}PlasmaExtras.MenuItem {id: showItemvisible: separatorItem.visibletext: i18nc("@action:inmenu", "Show")property PlasmaExtras.Menu _subShowMenu: PlasmaExtras.Menu {id: subShowMenuvisualParent: showItem.action}}PlasmaExtras.MenuItem {id: separatorItemseparator: truevisible: false}PlasmaExtras.MenuItem {text: i18nc("@action:inmenu", "Hide %1", menu.actionItem.label)onClicked: {root.hideAction(menu.actionItem.key);}enabled: menu.actionItem.key !== 'kimpanel-placeholder'visible: enabled}PlasmaExtras.MenuItem {text: i18nc("@action:inmenu", "Configure Input Method")icon: "configure"onClicked: {root.helper.configure();}}PlasmaExtras.MenuItem {text: i18nc("@action:inmenu", "Reload Config")icon: "view-refresh"onClicked: {root.helper.reloadConfig();}}PlasmaExtras.MenuItem {text: i18nc("@action:inmenu", "Exit Input Method")icon: "application-exit"onClicked: {root.helper.exit();}}PlasmaExtras.MenuItem {property PlasmaCore.Action configureAction: nullenabled: configureAction && configureAction.enabledtext: configureAction ? configureAction.text : ""icon: configureAction ? configureAction.icon : ""onClicked: configureAction.trigger()Component.onCompleted: configureAction = Plasmoid.internalAction("configure")}}}}