#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;
+
+class SearchLineEdit : public ExLineEdit, public SearchWidget {
-/*
- Clear button on the right hand side of the search widget.
- Hidden by default
- "A circle with an X in it"
- */
-class ClearButton : public QAbstractButton
-{
Q_OBJECT
public:
- ClearButton(QWidget *parent = 0);
- void paintEvent(QPaintEvent *event);
-
-public slots:
- void textChanged(const QString &text);
-};
+ 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); }
+ void setEnabled(bool enabled);
-class SearchLineEdit : public ExLineEdit
-{
- Q_OBJECT
- Q_PROPERTY(QString inactiveText READ inactiveText WRITE setInactiveText)
+public slots:
+ void returnPressed();
signals:
void textChanged(const QString &text);
void textEdited(const QString &text);
void search(const QString &text);
- void suggestionAccepted(const QString &suggestion);
-
-public:
- SearchLineEdit(QWidget *parent = 0);
+ void suggestionAccepted(Suggestion *suggestion);
- QString inactiveText() const;
- 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) { completion->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 *m_searchButton;
- QString m_inactiveText;
- AutoComplete *completion;
+ SearchButton *searchButton;
+ QString inactiveText;
+ AutoComplete *autoComplete;
};
#endif // SEARCHLINEEDIT_H