]> git.sur5r.net Git - minitube/blobdiff - src/suggester.h
Imported Upstream version 2.4
[minitube] / src / suggester.h
index ad39f92dba8814eb680972480281716534fc1937..37b805cc7883c099332f1ba13083231469769a9b 100644 (file)
@@ -1,19 +1,70 @@
+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+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 SUGGESTER_H
 #define SUGGESTER_H
 
-#include <QtGui>
+#include <QtCore>
+
+class Suggestion {
+
+public:
+    Suggestion(QString value = QString(),
+               QString type = QString(),
+               QString userData = QString()) :
+        value(value), type(type), userData(userData) { }
+    QString value;
+    QString type;
+    QString userData;
+
+    bool operator==(const Suggestion &other) const {
+        return (value == other.value) && (type == other.type);
+    }
+
+    bool operator!=(const Suggestion &other) const {
+        return !(*this == other);
+    }
+
+    bool operator==(Suggestion *other) const {
+        qDebug() << "Comparing" << this << other;
+        return (value == other->value) && (type == other->type);
+    }
+
+    bool operator!=(Suggestion *other) const {
+        return !(this == other);
+    }
+
+};
 
 class Suggester : public QObject {
 
     Q_OBJECT
 
 public:
-    Suggester(QObject *parent = 0) : QObject(parent) { }
-    virtual void suggest(QString query) = 0;
+    Suggester(QObject *parent) : QObject(parent) { }
+    virtual void suggest(const QString &query) = 0;
 
 signals:
-    void ready(QStringList);
+    void ready(const QList<Suggestion*> &suggestions);
 
 };
 
 #endif // SUGGESTER_H
+