1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-30 08:22:51 -05:00

fix widget selection search

This commit is contained in:
bbedward
2025-09-17 11:58:04 -04:00
parent 02300024cf
commit 102cc3c0b6

View File

@@ -80,6 +80,7 @@ Popup {
width: 500 width: 500
height: 550 height: 550
modal: true modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
onOpened: { onOpened: {
isOpening = false isOpening = false
@@ -87,6 +88,33 @@ Popup {
searchField.forceActiveFocus() searchField.forceActiveFocus()
}) })
} }
Keys.onPressed: event => {
if (event.key === Qt.Key_Escape) {
root.close()
event.accepted = true
} else if (event.key === Qt.Key_Down) {
root.selectNext()
event.accepted = true
} else if (event.key === Qt.Key_Up) {
root.selectPrevious()
event.accepted = true
} else if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
if (root.keyboardNavigationActive) {
root.selectWidget()
} else if (root.filteredWidgets.length > 0) {
var firstWidget = root.filteredWidgets[0]
root.widgetSelected(firstWidget.id, root.targetSection)
root.close()
}
event.accepted = true
} else if (event.text && event.text.length > 0 && event.text.match(/[a-zA-Z0-9\\s]/)) {
if (!searchField.activeFocus) {
searchField.forceActiveFocus()
}
searchField.insertText(event.text)
event.accepted = true
}
}
onClosed: { onClosed: {
isOpening = false isOpening = false
allWidgets = [] allWidgets = []
@@ -107,32 +135,6 @@ Popup {
contentItem: Item { contentItem: Item {
anchors.fill: parent anchors.fill: parent
focus: true
Keys.onPressed: event => {
if (event.key === Qt.Key_Escape) {
root.close()
event.accepted = true
} else if (event.key === Qt.Key_Down) {
root.selectNext()
event.accepted = true
} else if (event.key === Qt.Key_Up) {
root.selectPrevious()
event.accepted = true
} else if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
if (root.keyboardNavigationActive) {
root.selectWidget()
} else if (root.filteredWidgets.length > 0) {
var firstWidget = root.filteredWidgets[0]
root.widgetSelected(firstWidget.id, root.targetSection)
root.close()
}
event.accepted = true
} else if (!searchField.activeFocus && event.text && event.text.length > 0 && event.text.match(/[a-zA-Z0-9\\s]/)) {
searchField.forceActiveFocus()
searchField.insertText(event.text)
event.accepted = true
}
}
DankActionButton { DankActionButton {
iconName: "close" iconName: "close"