diff -r 8d692d9f828f -r 50974a8b132e serviceproviders/sapi_mediamanagement/src/mgitemslist.cpp --- a/serviceproviders/sapi_mediamanagement/src/mgitemslist.cpp Fri Nov 06 13:05:00 2009 +0200 +++ b/serviceproviders/sapi_mediamanagement/src/mgitemslist.cpp Tue Nov 24 08:56:33 2009 +0200 @@ -16,12 +16,13 @@ */ -#include -#include +#include +#include #include "mgitemslist.h" #include "mgmediaitemfactory.h" #include "mgmediaitem.h" +#include "mgclfoperationobserver.h" _LIT8( KMgFileNameAndPath, "FileNameAndPath" ); @@ -34,8 +35,9 @@ // --------------------------------------------------------------------------- // -CMgItemsList::CMgItemsList( MCLFItemListModel* aItemListModel, TMgCmdId aCmdId ) +CMgItemsList::CMgItemsList( MCLFItemListModel* aItemListModel, CClfOperationObserver* aOperationObserver, TMgCmdId aCmdId ) : iItemListModel(aItemListModel), + iOperationObserver(aOperationObserver), iCmdId(aCmdId), iCount(iItemListModel->ItemCount()), iCurrent(KStartItemIndex), @@ -49,9 +51,9 @@ // --------------------------------------------------------------------------- // -CMgItemsList* CMgItemsList::NewL( MCLFItemListModel* aItemListModel, TMgCmdId aCmdId ) +CMgItemsList* CMgItemsList::NewL( MCLFItemListModel* aItemListModel, CClfOperationObserver* aOperationObserver, TMgCmdId aCmdId ) { - return new( ELeave ) CMgItemsList( aItemListModel, aCmdId ); + return new( ELeave ) CMgItemsList( aItemListModel, aOperationObserver, aCmdId ); } @@ -63,11 +65,23 @@ CMgItemsList::~CMgItemsList() { - delete iItemListModel; - - delete iMediaItem; - - } + if(iItemListModel) + { + iItemListModel->CancelRefresh(); + delete iItemListModel; + iItemListModel = NULL; + } + if(iOperationObserver) + { + delete iOperationObserver; + iOperationObserver = NULL; + } + if(iMediaItem) + { + delete iMediaItem; + iMediaItem = NULL; + } + } // --------------------------------------------------------------------------- // CMgItemsList::Reset // Resets the iterator to point to the beginning of list @@ -89,8 +103,8 @@ { iCurrent++; - - if( iCurrentItem( iCurrent );