1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -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
height: 550
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
onOpened: {
isOpening = false
@@ -87,6 +88,33 @@ Popup {
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: {
isOpening = false
allWidgets = []
@@ -107,32 +135,6 @@ Popup {
contentItem: Item {
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 {
iconName: "close"