overview: tab to copy selected result

This commit is contained in:
end-4
2026-01-04 00:10:49 +01:00
parent b268f1d61c
commit 8538efe743
2 changed files with 35 additions and 14 deletions
@@ -1,15 +1,12 @@
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Layouts
import Quickshell
import qs
import qs.services
import qs.modules.common
import qs.modules.common.widgets
import qs.modules.common.functions
import Qt5Compat.GraphicalEffects
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Io
import Quickshell.Hyprland
RowLayout {
id: root
@@ -92,6 +89,16 @@ RowLayout {
}
}
}
Keys.onPressed: event => {
if (event.key === Qt.Key_Tab) {
if (LauncherSearch.results.length === 0) return;
const tabbedText = LauncherSearch.results[0].name;
LauncherSearch.query = tabbedText;
searchInput.text = tabbedText;
event.accepted = true;
}
}
}
IconToolbarButton {
@@ -1,15 +1,16 @@
pragma ComponentBehavior: Bound
import Qt.labs.synchronizer
import Qt5Compat.GraphicalEffects
import QtQuick
import QtQuick.Layouts
import Quickshell
import qs
import qs.services
import qs.modules.common
import qs.modules.common.widgets
import qs.modules.common.functions
import Qt.labs.synchronizer
import Qt5Compat.GraphicalEffects
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Io
Item { // Wrapper
id: root
@@ -205,12 +206,25 @@ Item { // Wrapper
}
delegate: SearchItem {
id: searchItem
// The selectable item for each search result
required property var modelData
anchors.left: parent?.left
anchors.right: parent?.right
entry: modelData
query: StringUtils.cleanOnePrefix(root.searchingText, [Config.options.search.prefix.action, Config.options.search.prefix.app, Config.options.search.prefix.clipboard, Config.options.search.prefix.emojis, Config.options.search.prefix.math, Config.options.search.prefix.shellCommand, Config.options.search.prefix.webSearch])
Keys.onPressed: event => {
if (event.key === Qt.Key_Tab) {
if (LauncherSearch.results.length === 0)
return;
const tabbedText = searchItem.modelData.name;
LauncherSearch.query = tabbedText;
searchBar.searchInput.text = tabbedText;
event.accepted = true;
root.focusSearchInput();
}
}
}
}
}