diff options
| author | Peter Penz <[email protected]> | 2009-10-17 15:05:50 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-10-17 15:05:50 +0000 |
| commit | 5e123c68d7717558db354bd045bf334f0904f7d2 (patch) | |
| tree | b2df4f6e91274823468747578dc03c1233a9b5ce /src/search/dolphinsearchbox.h | |
| parent | e1dde0669fa9c8fb36d6e420a93354c5e78f42b6 (diff) | |
* move classes for searching into an own folder (new classes will be added soon)
* Postpone the creation of the searchcompleter, until the editor gets focused. This improves the startup time of Dolphin (reading all available tags is an expensive operation).
svn path=/trunk/KDE/kdebase/apps/; revision=1036658
Diffstat (limited to 'src/search/dolphinsearchbox.h')
| -rw-r--r-- | src/search/dolphinsearchbox.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/search/dolphinsearchbox.h b/src/search/dolphinsearchbox.h new file mode 100644 index 000000000..93c033bb8 --- /dev/null +++ b/src/search/dolphinsearchbox.h @@ -0,0 +1,96 @@ +/*************************************************************************** + * Copyright (C) 2009 by Peter Penz <[email protected]> * + * Copyright (C) 2009 by Matthias Fuchs <[email protected]> * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ +#ifndef DOLPHINSEARCHBOX_H +#define DOLPHINSEARCHBOX_H + +#include <QWidget> + +#include <KIcon> + +class KLineEdit; +class KUrl; +class QCompleter; +class QModelIndex; +class QStandardItemModel; +class QToolButton; + +/** + * @brief used for completition for the DolphinSearchBox + */ +class DolphinSearchCompleter : public QObject +{ + Q_OBJECT + public: + DolphinSearchCompleter(KLineEdit *linedit); + + public slots: + void highlighted(const QModelIndex& index); + void activated(const QModelIndex& index); + void slotTextEdited(const QString &text); + + private: + void addCompletionItem(const QString& displayed, const QString& usedForCompletition, const QString& description = QString(), const QString& toolTip = QString(), const KIcon& icon = KIcon()); + + void findText(int* wordStart, int* wordEnd, QString* newWord, int cursorPos, const QString &input); + + private: + KLineEdit* q; + QCompleter* m_completer; + QStandardItemModel* m_completionModel; + QString m_userText; + int m_wordStart; + int m_wordEnd; +}; + +/** + * @brief Input box for searching files with Nepomuk. + */ +class DolphinSearchBox : public QWidget +{ + Q_OBJECT + +public: + DolphinSearchBox(QWidget* parent = 0); + virtual ~DolphinSearchBox(); + +protected: + virtual bool event(QEvent* event); + virtual bool eventFilter(QObject* watched, QEvent* event); + +signals: + /** + * Is emitted when the user pressed Return or Enter + * and provides the Nepomuk URL that should be used + * for searching. + */ + void search(const KUrl& url); + +private slots: + void emitSearchSignal(); + void slotTextEdited(const QString& text); + +private: + KLineEdit* m_searchInput; + QToolButton* m_searchButton; + + DolphinSearchCompleter* m_completer; +}; + +#endif |
