]> git.sur5r.net Git - minitube/blobdiff - src/autocomplete.h
Imported Upstream version 2.3
[minitube] / src / autocomplete.h
index 17a59530bf82c76d7678b6ed24705176b72360b0..eaf4eb182bf642ddb86e78141dbf21d9b01ad6a7 100644 (file)
@@ -17,46 +17,55 @@ You should have received a copy of the GNU General Public License
 along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 
 $END_LICENSE */
-
-#ifndef SUGGESTCOMPLETION_H
-#define SUGGESTCOMPLETION_H
+#ifndef AUTOCOMPLETE_H
+#define AUTOCOMPLETE_H
 
 #include <QtGui>
 
 class Suggester;
+class Suggestion;
 class SearchLineEdit;
 
 class AutoComplete : public QObject {
+
     Q_OBJECT
 
 public:
-    AutoComplete(SearchLineEdit *parent, QLineEdit *editor);
-    ~AutoComplete();
-    bool eventFilter(QObject *obj, QEvent *ev);
-    void showCompletion(const QStringList &choices);
+    AutoComplete(SearchLineEdit *buddy, QLineEdit *lineEdit);
     void setSuggester(Suggester* suggester);
     QListWidget* getPopup() { return popup; }
-
-public slots:
-    void doneCompletion();
     void preventSuggest();
     void enableSuggest();
-    void autoSuggest();
-    void currentItemChanged(QListWidgetItem *current);
-    void suggestionsReady(QStringList suggestions);
 
 signals:
-    void suggestionAccepted(const QString &suggestion);
+    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 *editor;
+    QLineEdit *lineEdit;
     QString originalText;
     QListWidget *popup;
     QTimer *timer;
     bool enabled;
-    Suggester* suggester;
-
+    Suggester *suggester;
+    QList<Suggestion*> suggestions;
+    bool itemHovering;
 };
 
-#endif // SUGGESTCOMPLETION_H
+#endif // AUTOCOMPLETE_H