mpviewplugins/mpcollectionviewplugin/src/mpcollectioncontainerplaylists.cpp
changeset 20 82baf59ce8dd
parent 19 4e84c994a771
child 29 8192e5b5c935
--- 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 <hbdocumentloader.h>
 #include <hblistview.h>
+#include <hbgroupbox.h>
+#include <hblabel.h>
 
 #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<HbListView*>(widget);
+                initializeList();
+            }
+            if ( mInfoBar ) {
+                delete mInfoBar;
+                mInfoBar = 0;
+            }
         }
-
-        QGraphicsWidget *widget;
-        widget = mDocumentLoader->findWidget(QString("playlistDetail"));
-        mInfoBar = qobject_cast<MpCollectionInfoBar*>(widget);
-
-        widget = mDocumentLoader->findWidget(QString("playlistList"));
-        mList = qobject_cast<HbListView*>(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<HbGroupBox*>(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
 }