X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=search.h;h=4908ac668d6d153877befa3ddd083805430c9f65;hb=f022d4d369f0721e0036268c0869adcda52d1061;hp=4c7ad0ea99c552f8857dc1fba94d0eef0e6227c4;hpb=19cf9a449b50a2b52e552f5ba26974c06d1601ef;p=dorian diff --git a/search.h b/search.h index 4c7ad0e..4908ac6 100644 --- a/search.h +++ b/search.h @@ -16,6 +16,7 @@ class Search: public QObject Q_OBJECT public: + /** Search query. */ struct Query { QString title; @@ -23,6 +24,7 @@ public: QStringList languages; }; + /** Search result. */ struct Result { QString id; @@ -31,6 +33,17 @@ public: QStringList authors; QString language; QImage cover; + bool operator ==(const Result &other) const { + return (source == other.source) && (id == other.id); + } + }; + + /** Download status. */ + enum + { + Ok, + DownloadError, + FileError, }; static Search *instance(); @@ -42,19 +55,25 @@ signals: void endSearch(); void beginDownload(int totalBlocks); void downloading(int blocks); - void endDownload(); + void endDownload(int status, const Search::Result &result, + const QString &fileName); public slots: void start(const Query &query); QList results(); - bool download(const Result &result, const QString &fileName); + void download(const Result &result, const QString &fileName); void finished(); + void downloadFinished(); -protected: +private: explicit Search(); QNetworkAccessManager *manager; + QNetworkAccessManager *downloadManager; QNetworkReply *reply; + QNetworkReply *downloadReply; QList searchResults; + Search::Result downloadResult; + QString downloadFileName; }; #endif // SEARCH_H