diff -r 2c5162224003 -r fdb31ab341af mpviewplugins/mpdetailsviewplugin/inc/mpdetailsview.h --- 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 -#include +#include #include #include #include @@ -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 &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 mRecommendationSongs; - QList mRecommendationArtists; - QList mRecommendationAlbumArtsLink; - QList mRecommendationAlbumArtsName; - - QNetworkAccessManager *mManager; - QNetworkAccessManager *mDownloadManager; + HbProgressBar *mInspireMeProgressBar; int mDownloadedAlbumArts; ThumbnailManager *mThumbnailManager; //owned QPixmap mDefaultRecommendationAlbumArt; - QMap mRecommendationAlbumArtsMap; - int mAlbumArtsReadyCount; + + QList 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) };