]> git.sur5r.net Git - minitube/blobdiff - src/autocomplete.h
SearchLineEdit refactoring
[minitube] / src / autocomplete.h
index 1699ebe83ec3a71eaefa99b079ab5bab87818e8c..25a632dcb7eae0ffcb1a189874f23f0dd11151b0 100644 (file)
@@ -24,17 +24,18 @@ $END_LICENSE */
 
 class Suggester;
 class Suggestion;
-class SearchLineEdit;
+class SearchWidget;
+
+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);
+    AutoComplete(SearchWidget *buddy, QLineEdit *lineEdit);
     void setSuggester(Suggester* suggester);
     QListWidget* getPopup() { return popup; }
     void preventSuggest();
@@ -44,6 +45,9 @@ signals:
     void suggestionAccepted(Suggestion *suggestion);
     void suggestionAccepted(const QString &value);
 
+protected:
+    bool eventFilter(QObject *obj, QEvent *ev);
+
 private slots:
     void acceptSuggestion();
     void suggest();
@@ -51,11 +55,13 @@ private slots:
     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;
+    SearchWidget *buddy;
     QLineEdit *lineEdit;
     QString originalText;
     QListWidget *popup;
@@ -63,7 +69,7 @@ private:
     bool enabled;
     Suggester *suggester;
     QList<Suggestion*> suggestions;
-
+    bool itemHovering;
 };
 
 #endif // AUTOCOMPLETE_H