┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/private
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/private')
-rw-r--r--src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp5
-rw-r--r--src/kitemviews/private/kitemlistkeyboardsearchmanager.h11
2 files changed, 15 insertions, 1 deletions
diff --git a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp
index 0e6280ede..e646a6249 100644
--- a/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp
+++ b/src/kitemviews/private/kitemlistkeyboardsearchmanager.cpp
@@ -63,6 +63,11 @@ void KItemListKeyboardSearchManager::addKeys(const QString& keys)
m_keyboardInputTime.start();
}
+bool KItemListKeyboardSearchManager::addKeyBeginsNewSearch() const
+{
+ return m_keyboardInputTime.hasExpired(m_timeout) || m_searchedString.isEmpty();
+}
+
void KItemListKeyboardSearchManager::setTimeout(qint64 milliseconds)
{
m_timeout = milliseconds;
diff --git a/src/kitemviews/private/kitemlistkeyboardsearchmanager.h b/src/kitemviews/private/kitemlistkeyboardsearchmanager.h
index 72f5695ce..80caea2ed 100644
--- a/src/kitemviews/private/kitemlistkeyboardsearchmanager.h
+++ b/src/kitemviews/private/kitemlistkeyboardsearchmanager.h
@@ -35,6 +35,11 @@ public:
* Add \a keys to the text buffer used for searching.
*/
void addKeys(const QString& keys);
+ /**
+ * @returns true if the next call to addKeys() will trigger a new search.
+ * Returns false if the next added key char will be added to the search string that was used previously.
+ */
+ bool addKeyBeginsNewSearch() const;
/**
* Sets the delay after which the search is cancelled to \a milliseconds.
@@ -46,7 +51,6 @@ public:
qint64 timeout() const;
void cancelSearch();
- bool shouldClearSearchIfInputTimeReached();
public Q_SLOTS:
@@ -66,9 +70,14 @@ Q_SIGNALS:
void changeCurrentItem(const QString& string, bool searchFromNextItem);
private:
+ bool shouldClearSearchIfInputTimeReached();
+
+private:
QString m_searchedString;
bool m_isSearchRestarted;
+ /** Measures the time since the last key press. */
QElapsedTimer m_keyboardInputTime;
+ /** Time in milliseconds in which a key press is considered as a continuation of the previous search input. */
qint64 m_timeout;
};