serviceproviders/sapi_mediamanagement/src/mgitemslist.cpp
changeset 33 50974a8b132e
parent 19 989d2f495d90
--- 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 <mclfitem.h>
-#include <mclfitemlistmodel.h>
+#include <MCLFItem.h>
+#include <MCLFItemListModel.h>
 
 #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( iCurrent<iCount )
+    
+    if( iCurrent< iCount )
         {
 
         const MCLFItem& item = iItemListModel->Item( iCurrent );