Files
fedora-tools/plasma-panel-actions/controller/contents/ui/main.qml
T

48 lines
1.6 KiB
QML

// 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);
}
}
}