X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6c3d9acbc22ea9463ba40ef84c9e8c8419dfacf3..d48b733:/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp diff --git a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp index 2f4e93b1d..ffa92a1cf 100644 --- a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp +++ b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp @@ -22,14 +22,10 @@ #include "kitemlistkeyboardsearchmanager.h" -#include -#include - -#include KItemListKeyboardSearchManager::KItemListKeyboardSearchManager(QObject* parent) : QObject(parent), - m_timeout(5000) + m_timeout(1000) { m_keyboardInputTime.invalidate(); } @@ -42,12 +38,18 @@ void KItemListKeyboardSearchManager::addKeys(const QString& keys) { const bool keyboardTimeWasValid = m_keyboardInputTime.isValid(); const qint64 keyboardInputTimeElapsed = m_keyboardInputTime.restart(); - if (keyboardInputTimeElapsed > m_timeout || !keyboardTimeWasValid || keys.isEmpty()) { + if (keyboardInputTimeElapsed > m_timeout || !keyboardTimeWasValid) { m_searchedString.clear(); } const bool newSearch = m_searchedString.isEmpty(); + // Do not start a new search if the user pressed Space. Only add + // it to the search string if a search is in progress already. + if (newSearch && keys == QLatin1String(" ")) { + return; + } + if (!keys.isEmpty()) { m_searchedString.append(keys); @@ -76,3 +78,17 @@ qint64 KItemListKeyboardSearchManager::timeout() const return m_timeout; } +void KItemListKeyboardSearchManager::cancelSearch() +{ + m_searchedString.clear(); +} + +void KItemListKeyboardSearchManager::slotCurrentChanged(int current, int previous) +{ + Q_UNUSED(previous); + + if (current < 0) { + // The current item has been removed. We should cancel the search. + cancelSearch(); + } +}