Fix sorting of library. Add basic search framework.
[dorian] / search.h
diff --git a/search.h b/search.h
new file mode 100644 (file)
index 0000000..47e5b1a
--- /dev/null
+++ b/search.h
@@ -0,0 +1,52 @@
+#ifndef SEARCH_H
+#define SEARCH_H
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+#include <QImage>
+#include <QList>
+
+class Search: public QObject
+{
+    Q_OBJECT
+
+public:
+    struct Query
+    {
+        QString title;
+        QString author;
+        QStringList languages;
+    };
+
+    struct Result
+    {
+        QString id;
+        QString source;
+        QString title;
+        QStringList authors;
+        QString language;
+        QImage cover;
+    };
+
+    static Search *instance();
+    static void close();
+
+signals:
+    void beginSearch();
+    void searching();
+    void endSearch();
+    void beginDownload(int totalBlocks);
+    void downloading(int blocks);
+    void endDownload();
+
+public slots:
+    void start(const Query &query);
+    QList<Result> results();
+    bool download(const Result &result, const QString &fileName);
+
+protected:
+    explicit Search();
+};
+
+#endif // SEARCH_H