mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h
changeset 35 fdb31ab341af
parent 34 2c5162224003
child 32 c163ef0b758d
--- a/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h	Fri Apr 30 19:33:32 2010 -0500
+++ b/mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h	Fri May 14 18:54:37 2010 -0500
@@ -18,8 +18,7 @@
 #ifndef MPDETAILSVIEW_H
 #define MPDETAILSVIEW_H
 
-#include <qpixmap>
-#include <qpointer.h>
+#include <QPixmap>
 #include <QNetworkReply>
 #include <QDomDocument>
 #include <QMap>
@@ -37,15 +36,31 @@
 class HbPushButton;
 class HbDocumentLoader;
 class HbListWidget;
-class HbDialog;
 class ThumbnailManager;
 class QTranslator;
 class QGraphicsLinearLayout;
+class HbProgressBar;
 
+class MpEngine;
 class MpSongData;
-class MpMpxDetailsFrameworkWrapper;
+class MpQueryManager;
+
+#ifdef SHARE_FUNC_ENABLED
+class MpDetailsShareDialog;
+#endif
 
 //class declaration
+/*!
+  Details view is the "flipside view" of Music Player.
+  In addition to displaying song details, details view
+  also provides user the possibility to comment a
+  track (by initiating sharedialog), and to get
+  recommendations based on his playlist (by displaying
+  a list of favourites, fetched from OVI music server).
+
+  DetailsView's song information will not be updated
+  if the track changes while detailsview is active.
+*/
 class MpDetailsView : public MpViewBase
 {
     Q_OBJECT
@@ -65,51 +80,48 @@
 public slots:
     void back();    
     void albumArtChanged();
+    void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
     
 private slots:
-    void share();
-    void webViewLoaded( bool ok );
-    void playbackInfoChanged();
+    void handlePlaybackInfoChanged();
     void songDetailInfoChanged();
     
-    // groupbox handling, one or zero groupbox is expanded
-    void toggleDetailsGroupBox( bool state );
-    void toggleInspireMeGroupBox( bool state );
-      
-    void retrieveInformationFinished( QNetworkReply* reply );
-    void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
-    void retrieveInformationSslErrors( const QList<QSslError> &error );
-    
-    void DownloadFinished( QNetworkReply* reply );
+    void handleDetailsGroupBoxToggled( bool state );
+    void handleInspireMeGroupBoxToggled( bool state );
+          
+    void handleNetworkError();
     
     void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
-    
-    void addContext();
-    void close();
-    
+    void updateSharedData(const QString& url);
+
+#ifdef SHARE_FUNC_ENABLED
+    void share();
+    void closeShareDialog();
+#endif
+
 private:
-    void setupMenu();
-    void loadSharePlayer();
+    bool canQueryRecommendations() const;
+    bool canQuerySharePlayerLink() const;
     
-    void constructRequest( QString &uri );     
-    // retrieve URI from Ovi music server
-    void retrieveInformation( const QString &urlEncoded );
+    void setupMenu();
+ 
+    void clearInspireMe();
     
-    void composeAlbumCover( QPixmap albumart );
-    QString keyValues( QStringList keys, QStringList values ) const;
-    void handleParsedXML();
-    
-    void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
     void RenderInspireMeGroupBox();
     void recommendationAlbumArtReady();
+
+#ifdef SHARE_FUNC_ENABLED
+    void createShareDialog();
+#endif
+
+private:    
+    MpEngine                *mMpEngine;         // Own
     
-private:
     MpSongData              *mSongData;
-    MpMpxDetailsFrameworkWrapper   *mFrameworkWrapper;
     
     bool                    mActivated;
     HbMainWindow            *mWindow;
-    HbAction                *mNavigationBack;
+    HbAction                *mSoftKeyBack;
     
     HbWidget                *mContainer;
     HbLabel                 *mSongText; //owned
@@ -120,27 +132,17 @@
     HbGroupBox              *mInspireMeGroupBox; //owned
     HbPushButton            *mShareButton; //owned
     HbDocumentLoader        *mDocumentLoader;//owned
-    QPixmap                  mCompositePixmap;
     HbListWidget            *mDetailList; // owned by mSongDetailsGroupBox
     HbListWidget            *mInspireList; // owned by mInspireMeGroupBox
-    HbWidget                *mInspireMe;
-    QGraphicsLinearLayout   *mLayout;
     HbPushButton            *mButton;
-    
-    QList<QString>          mRecommendationSongs;
-    QList<QString>          mRecommendationArtists;
-    QList<QString>          mRecommendationAlbumArtsLink;
-    QList<QString>          mRecommendationAlbumArtsName;
-    
-    QNetworkAccessManager   *mManager;
-    QNetworkAccessManager   *mDownloadManager;
+    HbProgressBar           *mInspireMeProgressBar;    
     
     int                     mDownloadedAlbumArts;
     
     ThumbnailManager        *mThumbnailManager; //owned
     QPixmap                 mDefaultRecommendationAlbumArt;
-    QMap<QString, QPixmap>    mRecommendationAlbumArtsMap;
-    int                     mAlbumArtsReadyCount;
+   
+ 
     QList<QNetworkReply *>  mReplys;
     
     QDomDocument            mDomDocument;
@@ -148,9 +150,17 @@
     QTranslator             *mMpTranslator;         // Own
     QTranslator             *mCommonTranslator;     // Own
     
-    HbDialog                *mPopup;
-    QGraphicsWebView        *mWebView; // owned by popup dialog
+    MpQueryManager*         mMpQueryManager;     // Own
+	
+    bool                    mInspireMeQueryOngoing;
+    bool                    mInspireMeQueryRendered;
+    bool                    mInspireMeOpen;
+    bool                    mSongDetailsGbOpen;
     
+#ifdef SHARE_FUNC_ENABLED
+    MpDetailsShareDialog*   mSharePopup;            // Own
+#endif
+
     Q_DISABLE_COPY(MpDetailsView)
 };