#ifndef SEARCHLINEEDIT_H
#define SEARCHLINEEDIT_H
-#include "urllineedit.h"
-#include "autocomplete.h"
+#include <QtWidgets>
-#include <QLineEdit>
-#include <QAbstractButton>
-
-QT_BEGIN_NAMESPACE
-class QMenu;
-QT_END_NAMESPACE
-
-class SearchButton;
-class Suggester;
-
-/*
- Clear button on the right hand side of the search widget.
- Hidden by default
- */
-class ClearButton : public QAbstractButton {
-
- Q_OBJECT
-
-public:
- ClearButton(QWidget *parent = 0);
- void paintEvent(QPaintEvent *e);
-
-public slots:
- void textChanged(const QString &text);
-
-protected:
- void enterEvent(QEvent *e);
- void leaveEvent(QEvent *e);
-
- void mousePressEvent(QEvent *e);
- void mouseReleaseEvent(QEvent *e);
-
-private:
- bool hovered;
- bool mousePressed;
-};
-
-class SearchLineEdit : public ExLineEdit {
+#include "searchwidget.h"
+class SearchLineEdit : public QLineEdit, public SearchWidget {
Q_OBJECT
-signals:
- void textChanged(const QString &text);
- void textEdited(const QString &text);
- void search(const QString &text);
- void suggestionAccepted(Suggestion *suggestion);
-
public:
- SearchLineEdit(QWidget *parent = 0);
-
- void setInactiveText(const QString &text);
+ explicit SearchLineEdit(QWidget *parent = nullptr);
+ // SearchWidget interface
QMenu *menu() const;
void setMenu(QMenu *menu);
- void updateGeometries();
void enableSuggest();
void preventSuggest();
- void selectAll() { lineEdit()->selectAll(); }
- void setSuggester(Suggester *suggester) { autoComplete->setSuggester(suggester); }
- void setText(const QString &text) { lineEdit()->setText(text); }
+ void setSuggester(Suggester *suggester);
+ AutoComplete *getAutoComplete();
+ void emitTextChanged(const QString &text);
+ QLineEdit *getLineEdit();
+ QWidget *toWidget();
-protected:
- void resizeEvent(QResizeEvent *event);
- void paintEvent(QPaintEvent *event);
- void focusInEvent(QFocusEvent *event);
+ void setPlaceholderText(const QString &text) { QLineEdit::setPlaceholderText(text); }
+ void selectAll() { QLineEdit::selectAll(); }
+ void setText(const QString &text) { QLineEdit::setText(text); }
+ QString text() { return QLineEdit::text(); }
-private slots:
+public slots:
void returnPressed();
+signals:
+ void search(const QString &text);
+ void suggestionAccepted(Suggestion *suggestion);
+
private:
- SearchButton *searchButton;
- QString inactiveText;
AutoComplete *autoComplete;
};
#endif // SEARCHLINEEDIT_H
-