]> git.sur5r.net Git - minitube/blob - src/searchlineedit.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / searchlineedit.cpp
1 #include "searchlineedit.h"
2 #include "autocomplete.h"
3 #include "iconutils.h"
4
5 SearchLineEdit::SearchLineEdit(QWidget *parent) : QLineEdit(parent) {
6     setClearButtonEnabled(true);
7     setPlaceholderText(tr("Search"));
8
9     QAction *searchAction = new QAction();
10     IconUtils::setIcon(searchAction, "edit-find");
11     addAction(searchAction, QLineEdit::LeadingPosition);
12
13     // completion
14     autoComplete = new AutoComplete(this, this);
15     connect(autoComplete, SIGNAL(suggestionAccepted(Suggestion *)),
16             SIGNAL(suggestionAccepted(Suggestion *)));
17
18     connect(this, SIGNAL(returnPressed()), SLOT(returnPressed()));
19 }
20
21 QMenu *SearchLineEdit::menu() const {
22     return nullptr;
23 }
24
25 void SearchLineEdit::setMenu(QMenu *menu) {
26     Q_UNUSED(menu);
27 }
28
29 void SearchLineEdit::enableSuggest() {
30     autoComplete->enableSuggest();
31 }
32
33 void SearchLineEdit::preventSuggest() {
34     autoComplete->preventSuggest();
35 }
36
37 void SearchLineEdit::setSuggester(Suggester *suggester) {
38     autoComplete->setSuggester(suggester);
39 }
40
41 AutoComplete *SearchLineEdit::getAutoComplete() {
42     return autoComplete;
43 }
44
45 void SearchLineEdit::emitTextChanged(const QString &text) {
46     autoComplete->enableSuggest();
47     emit QLineEdit::textEdited(text);
48 }
49
50 void SearchLineEdit::returnPressed() {
51     QString s = text().simplified();
52     if (!s.isEmpty()) {
53         autoComplete->preventSuggest();
54         emit search(s);
55     }
56 }
57
58 QLineEdit *SearchLineEdit::getLineEdit() {
59     return this;
60 }
61
62 QWidget *SearchLineEdit::toWidget() {
63     return this;
64 }