class Suggestion;
class SearchLineEdit;
+QT_FORWARD_DECLARE_CLASS(QListWidget)
+QT_FORWARD_DECLARE_CLASS(QListWidgetItem)
+QT_FORWARD_DECLARE_CLASS(QLineEdit)
+
class AutoComplete : public QObject {
Q_OBJECT
public:
AutoComplete(SearchLineEdit *buddy, QLineEdit *lineEdit);
- ~AutoComplete();
- bool eventFilter(QObject *obj, QEvent *ev);
- void showCompletion(const QList<Suggestion*> &suggestions);
void setSuggester(Suggester* suggester);
QListWidget* getPopup() { return popup; }
-
-public slots:
- void acceptSuggestion();
void preventSuggest();
void enableSuggest();
- void suggest();
- void itemEntered(QListWidgetItem *item);
- void currentItemChanged(QListWidgetItem *item);
- void suggestionsReady(const QList<Suggestion*> &suggestions);
signals:
void suggestionAccepted(Suggestion *suggestion);
void suggestionAccepted(const QString &value);
+protected:
+ bool eventFilter(QObject *obj, QEvent *ev);
+
+private slots:
+ void acceptSuggestion();
+ void suggest();
+ void itemEntered(QListWidgetItem *item);
+ void currentItemChanged(QListWidgetItem *item);
+ void suggestionsReady(const QList<Suggestion*> &suggestions);
+ void adjustPosition();
+ void enableItemHovering();
+
private:
+ void showSuggestions(const QList<Suggestion*> &suggestions);
+ void hideSuggestions();
+
SearchLineEdit *buddy;
QLineEdit *lineEdit;
QString originalText;
bool enabled;
Suggester *suggester;
QList<Suggestion*> suggestions;
-
+ bool itemHovering;
};
#endif // AUTOCOMPLETE_H