From 90baf5a8977caf5cbc1cd9c161c56e97e02a1aef Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Wed, 25 Apr 2012 09:17:30 +0200 Subject: [PATCH] When Esc is pressed, clear the selection and cancel the keyboard search This patch restores the Dolphin 1.x behaviour that Esc clears the selection (Dolphin 2.0 did not have an easy way to clear the selection using the keyboard so far). Moreover, Esc now also cancels the current keyboard search. This fixes the problem that the only way to cancel the search is to wait until the timeout has expired. CCBUG: 298742 CCBUG: 297458 (cherry picked from commit d3b1312d3edc615b03fb17c1a5fa62ccb61cdabd) --- src/kitemviews/kitemlistcontroller.cpp | 7 +++++++ src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp | 6 ++++-- src/kitemviews/private/kitemlistkeyboardsearchmanager.h | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 011a3b57d..1f93a6357 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -374,6 +374,13 @@ bool KItemListController::keyPressEvent(QKeyEvent* event) break; } + case Qt::Key_Escape: + if (m_selectionBehavior != SingleSelection) { + m_selectionManager->clearSelection(); + } + m_keyboardManager->cancelSearch(); + break; + default: m_keyboardManager->addKeys(event->text()); return false; diff --git a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp index cfd19f58a..41ca34be4 100644 --- a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp +++ b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp @@ -25,8 +25,6 @@ #include #include -#include - KItemListKeyboardSearchManager::KItemListKeyboardSearchManager(QObject* parent) : QObject(parent), m_timeout(1000) @@ -76,3 +74,7 @@ qint64 KItemListKeyboardSearchManager::timeout() const return m_timeout; } +void KItemListKeyboardSearchManager::cancelSearch() +{ + m_searchedString.clear(); +} diff --git a/src/kitemviews/private/kitemlistkeyboardsearchmanager.h b/src/kitemviews/private/kitemlistkeyboardsearchmanager.h index d6a6686db..3f13ff445 100644 --- a/src/kitemviews/private/kitemlistkeyboardsearchmanager.h +++ b/src/kitemviews/private/kitemlistkeyboardsearchmanager.h @@ -58,6 +58,8 @@ public: void setTimeout(qint64 milliseconds); qint64 timeout() const; + void cancelSearch(); + signals: /** * Is emitted if the current item should be changed corresponding -- 2.47.3