]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp
Merge branch 'Applications/19.04'
[dolphin.git] / src / kitemviews / private / kitemlistkeyboardsearchmanager.cpp
index 2f4e93b1d8151d501ffc0ab52f0a406dce94c5f4..ffa92a1cf0bd19cb578484a6076f4871333d6a06 100644 (file)
 
 #include "kitemlistkeyboardsearchmanager.h"
 
-#include <QApplication>
-#include <QElapsedTimer>
-
-#include <KDebug>
 
 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();
+    }
+}