#ifndef SEARCHLINEEDIT_H
#define SEARCHLINEEDIT_H
-#include "urllineedit.h"
-#include "autocomplete.h"
+#include <QtGui>
+#if QT_VERSION >= 0x050000
+#include <QtWidgets>
+#endif
-#include <QLineEdit>
-#include <QAbstractButton>
-
-QT_BEGIN_NAMESPACE
-class QMenu;
-QT_END_NAMESPACE
+#include "exlineedit.h"
+#include "searchwidget.h"
class SearchButton;
class Suggester;
+class AutoComplete;
-/*
- Clear button on the right hand side of the search widget.
- Hidden by default
- */
-class ClearButton : public QAbstractButton {
+class SearchLineEdit : public ExLineEdit, public SearchWidget {
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(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
-
-private:
- bool hovered;
- bool mousePressed;
-};
+ SearchLineEdit(QWidget *parent = 0);
+ QMenu *menu() const;
+ void setMenu(QMenu *menu);
+ void enableSuggest();
+ void preventSuggest();
+ void selectAll();
+ void setSuggester(Suggester *suggester);
+ void setInactiveText(const QString &text);
+ void setText(const QString &text);
+ AutoComplete *getAutoComplete();
+ void emitTextChanged(const QString &text);
+ QString text();
+ QLineEdit *getLineEdit();
+ QWidget *toWidget() { return qobject_cast<QWidget*>(this); }
-class SearchLineEdit : public ExLineEdit {
+ void setEnabled(bool enabled);
- Q_OBJECT
+public slots:
+ void returnPressed();
signals:
void textChanged(const QString &text);
void search(const QString &text);
void suggestionAccepted(Suggestion *suggestion);
-public:
- SearchLineEdit(QWidget *parent = 0);
-
- void setInactiveText(const QString &text);
-
- 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 enabledChanged(bool enabled);
protected:
- void resizeEvent(QResizeEvent *event);
- void paintEvent(QPaintEvent *event);
- void focusInEvent(QFocusEvent *event);
-
-private slots:
- void returnPressed();
+ void updateGeometries();
+ void resizeEvent(QResizeEvent *e);
+ void paintEvent(QPaintEvent *e);
+ void focusInEvent(QFocusEvent *e);
private:
SearchButton *searchButton;