diff -r ecf06a08d4d9 -r 3ec52facab4d mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp --- a/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp Mon May 03 12:29:20 2010 +0300 +++ b/mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp Fri May 14 15:49:53 2010 +0300 @@ -711,8 +711,13 @@ CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() ); CleanupStack::PushL( path ); - for ( TInt i = 0; i < count; i++ ) { - path->SelectL( selection.at( i ) ); + if (count > 1) { + for ( TInt i = 0; i < count; i++ ){ + path->SelectL( selection.at( i ) ); + } + } + else { + path->Set( selection.at(0) ); } iCollectionUiHelper->DeleteL( *path, this ); CleanupStack::PopAndDestroy( path ); @@ -893,23 +898,30 @@ TMPXItemId collectionId( path->Id( 0 ) ); CleanupStack::PopAndDestroy( path ); - if ( collectionData->context() == ECollectionContextAlbums ) { + if ( ( collectionData->context() == ECollectionContextAlbums ) || + ( collectionData->context() == ECollectionContextArtistAlbums ) || + ( collectionData->context() == ECollectionContextArtists ) ) { for ( TInt i = 0; i < count; i++ ) { CMPXMedia* results; - CMPXMedia* album( containerArray->AtL( selection[i] ) ); + CMPXMedia* container( containerArray->AtL( selection[i] ) ); // Fetch the songs for the selected album - TMPXItemId albumId = album->ValueTObjectL( KMPXMediaGeneralId ); + TMPXItemId containerId = container->ValueTObjectL( KMPXMediaGeneralId ); CMPXMedia* findCriteria = CMPXMedia::NewL(); CleanupStack::PushL( findCriteria ); findCriteria->SetTObjectValueL( KMPXMediaGeneralType, EMPXGroup ); findCriteria->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong ); - findCriteria->SetTObjectValueL( KMPXMediaGeneralId, albumId ); + findCriteria->SetTObjectValueL( KMPXMediaGeneralId, containerId ); RArray attrs; CleanupClosePushL( attrs ); attrs.Append( TMPXAttribute( KMPXMediaIdGeneral, EMPXMediaGeneralTitle | EMPXMediaGeneralId ) ); - attrs.Append( KMPXMediaMusicAlbumTrack ); + if ( collectionData->context() == ECollectionContextArtists ){ + attrs.Append( KMPXMediaMusicArtist ); + } + else { + attrs.Append( KMPXMediaMusicAlbumTrack ); + } results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() ); CleanupStack::PopAndDestroy( &attrs ); CleanupStack::PopAndDestroy( findCriteria );