mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h
changeset 48 af3740e3753f
parent 32 c163ef0b758d
child 51 560ce2306a17
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h	Tue Jul 06 14:13:36 2010 +0300
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h	Wed Aug 18 09:46:20 2010 +0300
@@ -17,11 +17,11 @@
 #ifndef MPQUERYMANAGER_H_
 #define MPQUERYMANAGER_H_
 
-#include <QPixmap>
 #include <QPointer>
 #include <QNetworkReply>
 #include <QDomDocument>
 #include <QMap>
+#include <HbIcon>
 
 #include "mpviewbase.h"
 
@@ -45,66 +45,76 @@
     ~MpQueryManager();
     
 public:
-    void clearNetworkReplies();
+    void reset();
     void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
     void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
-    void clearRecommendations();
+    void queryLocalMusicStore();
+    bool isLocalMusicStore() const;
     
-    QStringList recommendationSongs();
-    QStringList recommendationArtists();
-    QStringList recommendationAlbumArtsLink();
-    QMap<QString, QPixmap>  recommendationAlbumArtsMap(); 
-    void insertMapItem( const QString &uri, const QPixmap &pixmap );    
+    int recommendationsCount() const;
+    QString recommendedSong(int index) const;
+    QString recommendedArtist(int index) const;
+    HbIcon recommendedAlbumArt(int index) const;
 
 private slots:
     void retrieveInformationFinished( QNetworkReply* reply );
     void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
     void retrieveInformationSslErrors( const QList<QSslError> &error );
-    void DownloadFinished( QNetworkReply* reply );    
+    void albumArtDownloaded( QNetworkReply* reply );    
     void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
-    void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
+    void thumbnailReady( const QPixmap pixmap, void *data, int id, int error );
                   
 private:
+    void clearThumbnails();
+    void clearRecommendations();    
+    void clearNetworkReplies();    
+    void signalError();    
     void constructRequest( QString &uri );     
     // retrieve URI from Ovi music server
     void retrieveInformation( const QString &urlEncoded );
     
-    void composeAlbumCover( QPixmap albumart );
     QString keyValues( QStringList keys, QStringList values ) const;
     void handleParsedXML();
 
     bool writeImageToFile( const QByteArray &aImageData, const QString &aImageFileName );
     
 signals:
-    void networkError();  
-    void searchUrlRetrieved( const QString& url );
-    void recommendationAlbumArtsReady();
-
+    void inspireMeItemAlbumArtReady();
+    void localMusicStoreRetrieved(bool storeUpdated);
+    void localMusicStoreRetrievalError();
+    void inspireMeItemsRetrievalError();
+    void inspireMeItemsMetadataRetrieved();
+            
 private:    
    
-    QNetworkAccessManager   *mManager;
-    QNetworkAccessManager   *mDownloadManager;
+    QNetworkAccessManager   	*mManager;
+    QNetworkAccessManager   	*mAlbumArtDownloader;
     
-    int                     mDownloadedAlbumArts;
+    int                     	mDownloadedAlbumArts;
   
-    QList<QNetworkReply *>  mReplys;
+    QList<QNetworkReply *>  	mReplys;
+    QList<int>                  mThumbnailRequests;
     
-    QDomDocument            mDomDocument;
-    ThumbnailManager        *mThumbnailManager; //owned    
+    QDomDocument            	mDomDocument;
+    ThumbnailManager        	*mThumbnailManager; //owned    
     
-    QString                 mArtist;
-    QString                 mAlbum;
-    QString                 mTitle;
-    
-    QStringList          mRecommendationAlbumArtsName;
+    QString                 	mArtist;
+    QString                 	mAlbum;
+    QString                 	mTitle;
+    QString                 	mMusicStore;
+    QStringList          		mRecommendationAlbumArtsName;
     
-    QStringList          mRecommendationSongs;
-    QStringList          mRecommendationArtists;
-    QStringList          mRecommendationAlbumArtsLink;
-    QMap<QString, QPixmap>  mRecommendationAlbumArtsMap;
-    int                     mAlbumArtsReadyCount;
-    QPixmap                 mDefaultRecommendationAlbumArt;
+    QStringList          		mRecommendationSongs;
+    QStringList          		mRecommendationArtists;
+    QStringList          		mRecommendationAlbumArtsLink;
+    QMap<QString, HbIcon>  		mRecommendationAlbumArtsMap;
+    int                     	mAlbumArtsReadyCount;
+    HbIcon                 		mDefaultRecommendationAlbumArt;
        
+    enum RequestType { NoRequest, InspireMeItemsMetadataRequest, InspireMeItemsAlbumArtRequest, LocalStoreRequest };
+    RequestType         		mRequestType;
+    int                         mRecommendationCount;
  
 };
 #endif /* MPQUERYMANAGER_H_ */
+