1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-08 06:25:37 -05:00

spotlight: fix file search keyboard navi woes

This commit is contained in:
bbedward
2025-10-27 10:57:12 -04:00
parent b79c66d59a
commit 2e462b0899
2 changed files with 34 additions and 11 deletions

View File

@@ -21,8 +21,13 @@ Rectangle {
property int itemHeight: 60
property int itemSpacing: Theme.spacingS
property bool hoverUpdatesSelection: false
property bool keyboardNavigationActive: fileSearchController ? fileSearchController.keyboardNavigationActive : false
signal keyboardNavigationReset
signal itemClicked(int index)
signal itemRightClicked(int index)
function ensureVisible(index) {
if (index < 0 || index >= count)
return
@@ -51,6 +56,25 @@ Rectangle {
ensureVisible(currentIndex)
}
onItemClicked: function (index) {
if (fileSearchController) {
const item = fileSearchController.model.get(index)
fileSearchController.openFile(item.filePath)
}
}
onItemRightClicked: function (index) {
if (fileSearchController) {
const item = fileSearchController.model.get(index)
fileSearchController.openFolder(item.filePath)
}
}
onKeyboardNavigationReset: {
if (fileSearchController)
fileSearchController.keyboardNavigationActive = false
}
delegate: Rectangle {
required property int index
required property string filePath
@@ -161,19 +185,18 @@ Rectangle {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
z: 10
onEntered: () => {
if (fileSearchController && filesList.keyboardNavigationActive) {
fileSearchController.keyboardNavigationActive = false
}
filesList.currentIndex = index
}
onEntered: {
if (filesList.hoverUpdatesSelection && !filesList.keyboardNavigationActive)
filesList.currentIndex = index
}
onPositionChanged: {
filesList.keyboardNavigationReset()
}
onClicked: mouse => {
if (mouse.button === Qt.LeftButton) {
if (fileSearchController)
fileSearchController.openFile(filePath)
filesList.itemClicked(index)
} else if (mouse.button === Qt.RightButton) {
if (fileSearchController)
fileSearchController.openFolder(filePath)
filesList.itemRightClicked(index)
}
}
}