1
/***************************************************************************
2
* Copyright (C) 2011 by Tirtha Chatterjee <tirtha.p.chatterjee@gmail.com> *
4
* Based on the Itemviews NG project from Trolltech Labs: *
5
* http://qt.gitorious.org/qt-labs/itemviews-ng *
7
* This program is free software; you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation; either version 2 of the License, or *
10
* (at your option) any later version. *
12
* This program is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
17
* You should have received a copy of the GNU General Public License *
18
* along with this program; if not, write to the *
19
* Free Software Foundation, Inc., *
20
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
21
***************************************************************************/
23
#ifndef KITEMLISTKEYBOARDMANAGER_H
24
#define KITEMLISTKEYBOARDMANAGER_H
26
#include <libdolphin_export.h>
30
#include <QElapsedTimer>
33
* @brief Controls the keyboard searching ability for a KItemListController.
35
* @see KItemListController
38
class LIBDOLPHINPRIVATE_EXPORT KItemListKeyboardSearchManager : public QObject
44
KItemListKeyboardSearchManager(QObject* parent = 0);
45
virtual ~KItemListKeyboardSearchManager();
48
* Add \a keys to the text buffer used for searching.
50
void addKeys(const QString& keys);
53
* Sets the delay after which the search is cancelled to \a milliseconds.
54
* If the time interval between two calls of addKeys(const QString&) is
55
* larger than this, the second call will start a new search, rather than
56
* combining the keys received from both calls to a single search string.
58
void setTimeout(qint64 milliseconds);
59
qint64 timeout() const;
65
void slotCurrentChanged(int current, int previous);
69
* Is emitted if the current item should be changed corresponding
71
* @param searchFromNextItem If true start searching from item next to the
72
* current item. Otherwise, search from the
75
// TODO: Think about getting rid of the bool parameter
76
// (see http://doc.qt.nokia.com/qq/qq13-apis.html#thebooleanparametertrap)
77
void changeCurrentItem(const QString& string, bool searchFromNextItem);
80
QString m_searchedString;
81
QElapsedTimer m_keyboardInputTime;