diff --git a/applets/kimpanel/backend/ibus/emojier/ui/CategoryPage.qml b/applets/kimpanel/backend/ibus/emojier/ui/CategoryPage.qml --- a/applets/kimpanel/backend/ibus/emojier/ui/CategoryPage.qml +++ b/applets/kimpanel/backend/ibus/emojier/ui/CategoryPage.qml @@ -28,11 +28,18 @@ { id: view property alias model: emojiModel.sourceModel + property string searchText: "" property alias category: filter.category property bool showSearch: false leftPadding: 0 rightPadding: 0 + Keys.onPressed: { + if(event.text.length > 0 && event.modifiers === Qt.NoModifier) { + window.startSearch(event.text) + } + } + titleDelegate: RowLayout { Layout.fillWidth: true Layout.preferredWidth: view.width @@ -45,6 +52,7 @@ id: searchField Layout.fillWidth: true placeholderText: i18n("Search...") + text: view.searchText visible: view.showSearch onTextChanged: { emojiModel.search = text diff --git a/applets/kimpanel/backend/ibus/emojier/ui/emojier.qml b/applets/kimpanel/backend/ibus/emojier/ui/emojier.qml --- a/applets/kimpanel/backend/ibus/emojier/ui/emojier.qml +++ b/applets/kimpanel/backend/ibus/emojier/ui/emojier.qml @@ -50,6 +50,10 @@ window.showPassiveNotification(i18n("%1 copied to the clipboard", thing)) } + function startSearch(typedText) { + window.pageStack.replace("qrc:/ui/CategoryPage.qml", {title: i18n("Search"), category: "", model: emoji, showSearch: true, searchText: typedText}) + } + onVisibilityChanged: { if (visible) globalDrawer.actions[recentEmojiModel.count === 0 ? 1 : 0].trigger()