waffles: start menu: add the right arrow thingy

This commit is contained in:
end-4
2025-12-05 12:20:50 +01:00
parent 3b4c721584
commit ed89ad882f
6 changed files with 86 additions and 11 deletions
@@ -0,0 +1 @@
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.5 13h9.309A6.478 6.478 0 0 0 11 17.5c0 1.087.267 2.112.739 3.013-1.05.35-2.208.487-3.239.487-2.722 0-6.335-.956-6.495-4.27L2 16.5v-2a1.5 1.5 0 0 1 1.356-1.493L3.5 13ZM21 7.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0ZM8.5 2a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Zm5.777 11.975a2 2 0 0 1-1.441 2.497l-.584.144a5.729 5.729 0 0 0 .006 1.807l.54.13a2 2 0 0 1 1.45 2.51l-.187.632c.44.386.94.699 1.485.921l.493-.518a2 2 0 0 1 2.899 0l.499.525a5.282 5.282 0 0 0 1.482-.913l-.198-.686a2 2 0 0 1 1.442-2.496l.583-.144a5.729 5.729 0 0 0-.006-1.808l-.54-.13a2 2 0 0 1-1.449-2.51l.186-.63a5.278 5.278 0 0 0-1.484-.923l-.493.519a2 2 0 0 1-2.9 0l-.498-.525c-.544.22-1.044.53-1.483.912l.198.686ZM17.5 19c-.8 0-1.45-.672-1.45-1.5 0-.829.65-1.5 1.45-1.5.8 0 1.45.671 1.45 1.5 0 .828-.65 1.5-1.45 1.5Z" fill="#212121"/></svg>

After

Width:  |  Height:  |  Size: 904 B

@@ -0,0 +1 @@
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12.81 13 4 13a2 2 0 0 0-2 2V16.5l.005.23C2.165 20.044 5.778 21 8.5 21c1.03 0 2.189-.137 3.239-.487-.23-.44-.413-.91-.537-1.403-.698.224-1.52.359-2.385.385L8.5 19.5l-.317-.005c-1.263-.039-2.44-.308-3.266-.753C3.95 18.222 3.5 17.509 3.5 16.5v-1.501l.01-.101a.506.506 0 0 1 .136-.253.51.51 0 0 1 .253-.136l.101-.01h7.732c.287-.55.651-1.055 1.077-1.499ZM13 6.5a4.5 4.5 0 1 0-9 0 4.5 4.5 0 0 0 9 0Zm-7.5 0c0-1.654 1.346-3 3-3s3 1.346 3 3-1.346 3-3 3-3-1.346-3-3Zm15.5 1a3.5 3.5 0 1 0-7 0 3.5 3.5 0 0 0 7 0Zm-5.5 0c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2-2-.897-2-2Zm.563 5.401-.5-.524c-.543.22-1.043.53-1.482.912l.198.686a2 2 0 0 1-1.441 2.497l-.584.144a5.729 5.729 0 0 0 .006 1.807l.54.13a2 2 0 0 1 1.45 2.51l-.187.632c.44.386.94.699 1.484.921l.494-.518a2 2 0 0 1 2.899 0l.498.525a5.28 5.28 0 0 0 1.483-.913l-.198-.686a2 2 0 0 1 1.442-2.496l.583-.144a5.729 5.729 0 0 0-.006-1.808l-.54-.13a2 2 0 0 1-1.45-2.51l.187-.63a5.28 5.28 0 0 0-1.484-.923l-.493.519a2 2 0 0 1-2.9 0ZM16.05 17.5c0-.829.65-1.5 1.45-1.5.8 0 1.45.671 1.45 1.5 0 .828-.65 1.5-1.45 1.5-.8 0-1.45-.672-1.45-1.5Z" fill="#212121"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -17,8 +17,8 @@ Singleton {
property string iconsPath: `${Directories.assetsPath}/icons/fluent`
property bool dark: Appearance.m3colors.darkmode
property real backgroundTransparency: 0.13
property real panelBackgroundTransparency: 0.12
property real backgroundTransparency: 0.16
property real panelBackgroundTransparency: 0.14
property real panelLayerTransparency: root.dark ? 0.9 : 0.7
property real contentTransparency: root.dark ? 0.87 : 0.5
function applyBackgroundTransparency(col) {
@@ -125,6 +125,10 @@ RowLayout {
entry: modelData
firstEntry: index === 0
width: ListView.view?.width
checked: resultListView.currentIndex === index
onRequestFocus: {
root.forceCurrentIndex(index);
}
}
}
@@ -12,7 +12,7 @@ import qs.modules.waffle.looks
RowLayout {
id: root
property StartMenuContext context
WPanelIconButton {
implicitWidth: 36
implicitHeight: 36
@@ -27,6 +27,7 @@ RowLayout {
orientation: Qt.Horizontal
spacing: 4
model: root.context.categories
clip: true
delegate: WBorderedButton {
id: tagButton
required property var modelData
@@ -38,7 +39,7 @@ RowLayout {
if (modelData.prefix != "") {
return LauncherSearch.query.startsWith(modelData.prefix);
} else {
return !tagListView.model.some(i => (i.prefix != "" && LauncherSearch.query.startsWith(i.prefix)))
return !tagListView.model.some(i => (i.prefix != "" && LauncherSearch.query.startsWith(i.prefix)));
}
}
contentItem: Item {
@@ -54,9 +55,27 @@ RowLayout {
}
}
WPanelIconButton {
id: optionsButton
implicitWidth: 36
implicitHeight: 36
iconSize: 24
iconName: "more-horizontal"
onClicked: accountsMenu.open()
WMenu {
id: accountsMenu
x: -accountsMenu.implicitWidth + optionsButton.implicitWidth
y: optionsButton.height + 10
downDirection: true
Action {
icon.name: "people-settings"
text: Translation.tr("Manage accounts")
onTriggered: {
Quickshell.execDetached(["bash", "-c", Config.options.apps.manageUser])
GlobalStates.searchOpen = false;
}
}
}
}
}
@@ -15,6 +15,8 @@ WChoiceButton {
required property LauncherSearchResult entry
property bool firstEntry: false
signal requestFocus()
checked: focus
animateChoiceHighlight: false
implicitWidth: contentLayout.implicitWidth + leftPadding + rightPadding
@@ -29,17 +31,65 @@ WChoiceButton {
root.entry.execute();
}
horizontalPadding: 0
verticalPadding: 0
contentItem: RowLayout {
id: contentLayout
spacing: 8
spacing: 0
SearchEntryIcon {
entry: root.entry
iconSize: 24
}
EntryNameColumn {
WButton {
id: launchButton
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
Layout.fillHeight: true
horizontalPadding: 10
verticalPadding: 11
implicitHeight: root.firstEntry ? 62 : 36
implicitWidth: entryContentRow.implicitWidth + leftPadding + rightPadding
topRightRadius: 0
bottomRightRadius: 0
onClicked: root.click()
contentItem: Item {
RowLayout {
id: entryContentRow
anchors {
left: parent.left
verticalCenter: parent.verticalCenter
}
spacing: 8
SearchEntryIcon {
entry: root.entry
iconSize: 24
}
EntryNameColumn {
Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter
}
}
}
}
Rectangle {
id: separator
opacity: (root.hovered && !root.checked) ? 1 : 0
Layout.fillHeight: true
implicitWidth: 1
color: ColorUtils.transparentize(Looks.colors.fg, 0.75)
}
WButton {
visible: !root.checked
Layout.fillHeight: true
implicitWidth: 47
topLeftRadius: 0
bottomLeftRadius: 0
onClicked: root.requestFocus()
contentItem: Item {
FluentIcon {
anchors.centerIn: parent
icon: "chevron-right"
implicitSize: 14
}
}
}
}