]> git.sur5r.net Git - minitube/blob - src/searchlineedit.h
7128994f4bab72b20602cd0a3f8d549f447094ff
[minitube] / src / searchlineedit.h
1 #ifndef SEARCHLINEEDIT_H
2 #define SEARCHLINEEDIT_H
3
4 #include <QtGui>
5 #if QT_VERSION >= 0x050000
6 #include <QtWidgets>
7 #endif
8
9 #include "exlineedit.h"
10 #include "searchwidget.h"
11
12 class SearchButton;
13 class Suggester;
14 class AutoComplete;
15
16 class SearchLineEdit : public ExLineEdit, public SearchWidget {
17
18     Q_OBJECT
19
20 public:
21     SearchLineEdit(QWidget *parent = 0);
22     QMenu *menu() const;
23     void setMenu(QMenu *menu);
24     void enableSuggest();
25     void preventSuggest();
26     void selectAll();
27     void setSuggester(Suggester *suggester);
28     void setInactiveText(const QString &text);
29     void setText(const QString &text);
30     AutoComplete *getAutoComplete();
31     void emitTextChanged(const QString &text);
32     QString text();
33     QLineEdit *getLineEdit();
34     QWidget *toWidget() { return qobject_cast<QWidget*>(this); }
35
36 public slots:
37     void returnPressed();
38
39 signals:
40     void textChanged(const QString &text);
41     void textEdited(const QString &text);
42     void search(const QString &text);
43     void suggestionAccepted(Suggestion *suggestion);
44
45 protected:
46     void updateGeometries();
47     void resizeEvent(QResizeEvent *e);
48     void paintEvent(QPaintEvent *e);
49     void focusInEvent(QFocusEvent *e);
50
51 private:
52     SearchButton *searchButton;
53     QString inactiveText;
54     AutoComplete *autoComplete;
55 };
56
57 #endif // SEARCHLINEEDIT_H
58