// SPDX-License-Identifier: MIT import QtQuick import QtQuick.Layouts import org.kde.plasma.core as PlasmaCore import org.kde.plasma.plasmoid import se.ajpanton.panelactions 1.0 import "areas.js" as Areas PlasmoidItem { id: root readonly property Item panelLayout: { let item = root.parent; while (item) { if (item instanceof GridLayout) return item; item = item.parent; } return null; } Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground Layout.minimumWidth: 0 Layout.minimumHeight: 0 Layout.preferredWidth: 0 Layout.preferredHeight: 0 Layout.maximumWidth: 0 Layout.maximumHeight: 0 preferredRepresentation: fullRepresentation PanelSettings { id: settings } PanelController { active: root.panelLayout !== null && !(Plasmoid.containment.corona?.editMode ?? false) locateArea: (x, y) => Areas.areaAt(root.panelLayout, x, y) scrollActions: ({ empty: settings.values.emptyAction, tasks: settings.values.tasksAction, launcher: settings.values.launcherAction, clock: settings.values.clockAction, tray: settings.values.trayAction, other: settings.values.otherAction }) clickActions: settings.values onActionRequested: (action, direction) => invoke(action, direction) onClickRequested: slot => { const action = settings.values[slot]; if (action === "command" || action === "application") settings.launchClick(slot); else invoke(action, 0); } } }