diff -r 4e84c994a771 -r 82baf59ce8dd mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp --- a/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp Fri Mar 19 09:28:13 2010 +0200 +++ b/mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp Fri Apr 16 14:56:30 2010 +0300 @@ -19,10 +19,11 @@ #include #include +#include +#include #include "mpcollectioncontainerplaylists.h" #include "mpmpxcollectiondata.h" -#include "mpcollectioninfobar.h" #include "mptrace.h" @@ -47,8 +48,7 @@ */ MpCollectionContainerPlaylists::MpCollectionContainerPlaylists( HbDocumentLoader *loader, QGraphicsItem *parent ) : MpCollectionListContainer(loader, parent), - mInfoBar(0), - mListInitialized(false) + mInfoBar(0) { TX_LOG } @@ -72,53 +72,56 @@ void MpCollectionContainerPlaylists::setupContainer() { TX_ENTRY_ARGS("mCollectionContext=" << mCollectionContext); - - if ( !mList ) { + if ( mCollectionData->count() ) { bool ok = false; - mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlist", &ok); - - if ( !ok ) { - TX_LOG_ARGS("Error: invalid xml file."); - Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file"); + QGraphicsWidget *widget; + if ( mCollectionContext == ECollectionContextPlaylists ) { + mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlists", &ok); + if ( !ok ) { + TX_LOG_ARGS("Error: invalid xml file."); + Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file"); + } + if ( !mList ) { + widget = mDocumentLoader->findWidget(QString("playlistsList")); + mList = qobject_cast(widget); + initializeList(); + } + if ( mInfoBar ) { + delete mInfoBar; + mInfoBar = 0; + } } - - QGraphicsWidget *widget; - widget = mDocumentLoader->findWidget(QString("playlistDetail")); - mInfoBar = qobject_cast(widget); - - widget = mDocumentLoader->findWidget(QString("playlistList")); - mList = qobject_cast(widget); - initializeList(); - } + else if ( mCollectionContext == ECollectionContextPlaylistSongs ) { + mDocumentLoader->load(QString(":/docml/musiccollection.docml"), "playlistSongs", &ok); + if ( !ok ) { + TX_LOG_ARGS("Error: invalid xml file."); + Q_ASSERT_X(ok, "MpCollectionContainerPlaylists::setupContainer", "invalid xml file"); + } - int count = mCollectionData->count(); - QString details; - QString detailsCount; - QString playlist; - switch ( mCollectionContext ) { - case ECollectionContextPlaylists: - details.setNum(count); - details.append( tr(" playlist(s)") ); - mInfoBar->setText(details); - break; - case ECollectionContextPlaylistSongs: - if ( mViewMode == MpCommon::FetchView ) { - details = "Select a song"; + widget = mDocumentLoader->findWidget(QString("playlistSongsDetail")); + mInfoBar = qobject_cast(widget); + + QString details; + if ( mViewMode == MpCommon::FetchView ) { + details = "Select a song"; + } + else { + details = mCollectionData->collectionTitle(); + } + mInfoBar->setHeading(details); } - else { - details = QString( tr("Playlist: ") ); - playlist = mCollectionData->collectionTitle(); - if ( playlist.isEmpty() ) { - playlist = QString( tr("Unknown") ); - } - details.append(playlist); - detailsCount.setNum(count); + if ( mNoMusic ) { + delete mNoMusic; + mNoMusic = 0; } - mInfoBar->setText(details, detailsCount); - break; - default: - TX_LOG_ARGS("Error: Wrong context; should never get here."); - break; + } + else { + if ( mInfoBar ) { + delete mInfoBar; + mInfoBar = 0; + } + // Call empty list from base class + setupEmptyListContainer(); } TX_EXIT }