Files
att_menu/modules/AppEntry.qml
T
2026-07-26 21:16:55 +02:00

77 lines
1.7 KiB
QML

import QtQuick
import qs.config
import qs.components
// One row in the launcher's result list.
Rectangle {
id: root
required property var entry
property bool selected: false
signal activated
signal entered
implicitHeight: 40
radius: Theme.radius
color: root.selected ? Theme.surfaceActive : "transparent"
Behavior on color {
ColorAnimation {
duration: Theme.animDuration
easing.type: Theme.animEasing
}
}
AppIcon {
id: icon
anchors {
left: parent.left
leftMargin: Theme.padding
verticalCenter: parent.verticalCenter
}
icon: root.entry.icon
fallbackLabel: root.entry.name
size: 26
}
Column {
anchors {
left: icon.right
right: parent.right
leftMargin: Theme.padding * 2
rightMargin: Theme.padding
verticalCenter: parent.verticalCenter
}
spacing: 1
Text {
width: parent.width
elide: Text.ElideRight
text: root.entry.name || root.entry.id
color: Theme.text
font.family: Theme.fontFamily
font.pixelSize: Theme.fontSize
}
Text {
width: parent.width
elide: Text.ElideRight
visible: text !== ""
text: root.entry.comment || root.entry.genericName || ""
color: Theme.textDim
font.family: Theme.fontFamily
font.pixelSize: Theme.fontSizeSmall
}
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: root.activated()
onEntered: root.entered()
}
}