diff -r cbb1bfb7ebfb -r edd273b3192a mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp --- a/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Fri May 14 16:21:14 2010 +0300 +++ b/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Thu May 27 13:19:19 2010 +0300 @@ -1256,6 +1256,19 @@ if( changeType == EMPXItemDeleted ) { refresh = ETrue; + MPX_DEBUG1("CMPXCollectionPlaylist::DoHandleCollectionChangeMessageL -- current item deleted"); + + TBool lastItemDeleted( iItemIndex == 0 && iItemIndexes.Count() == 1 ); + + if ( lastItemDeleted ) // playlist is now empty, notify observer immediately + { + MPX_DEBUG1("CMPXCollectionPlaylist::DoHandleCollectionChangeMessageL -- last playlist item deleted"); + Invalidate(); + if ( iPlObs ) + { + iPlObs->HandleCollectionPlaylistChange(KErrEof); + } + } } // Modified else if( changeType == EMPXItemModified ) @@ -1333,7 +1346,8 @@ } } - if (iAutoPlaylist && refresh) + // update playlist immediately when item is deleted in order to detect deletion of the last item in the playlist + if ( refresh && iItemIndexes.Count() > 0 ) { // For autoplaylist, affected by the event. // Path clip will never happen for autoplaylist