diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-05-03 14:32:53 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-05-03 14:32:53 +1000 |
| commit | 5978db658c541d4acf4de4a14139232f4a57284c (patch) | |
| tree | 754eeff62e09569ead024f89cc638a002a12c923 /modules/launcher/ActionItem.qml | |
| parent | launcher: fix scrollbar (diff) | |
| download | caelestia-shell-5978db658c541d4acf4de4a14139232f4a57284c.tar.gz caelestia-shell-5978db658c541d4acf4de4a14139232f4a57284c.tar.bz2 caelestia-shell-5978db658c541d4acf4de4a14139232f4a57284c.zip | |
feat: launcher actions
Diffstat (limited to 'modules/launcher/ActionItem.qml')
| -rw-r--r-- | modules/launcher/ActionItem.qml | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/modules/launcher/ActionItem.qml b/modules/launcher/ActionItem.qml new file mode 100644 index 0000000..06a9342 --- /dev/null +++ b/modules/launcher/ActionItem.qml @@ -0,0 +1,59 @@ +import "root:/widgets" +import "root:/config" +import Quickshell +import QtQuick + +PaddedRect { + id: root + + required property Actions.Action modelData + required property var list + + implicitWidth: ListView.view.width + implicitHeight: LauncherConfig.sizes.itemHeight + padding: [Appearance.padding.smaller, Appearance.padding.larger] + + StateLayer { + radius: Appearance.rounding.normal + + function onClicked(): void { + root.modelData.onClicked(root.list); + } + } + + MaterialIcon { + id: icon + + text: root.modelData.icon + font.pointSize: Appearance.font.size.extraLarge + + anchors.verticalCenter: parent.verticalCenter + } + + Item { + anchors.left: icon.right + anchors.leftMargin: Appearance.spacing.larger + anchors.verticalCenter: icon.verticalCenter + + implicitWidth: parent.width - icon.width + implicitHeight: childrenRect.height + + StyledText { + id: name + + text: root.modelData.name + font.pointSize: Appearance.font.size.normal + } + + StyledText { + text: root.modelData.desc + font.pointSize: Appearance.font.size.small + color: Appearance.alpha(Appearance.colours.m3outline, true) + + elide: Text.ElideRight + width: root.width - icon.width - Appearance.rounding.normal * 2 + + anchors.top: name.bottom + } + } +} |