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