videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp
branchRCL_3
changeset 11 5294c000a26d
parent 10 ce5ada96ab30
child 13 112a725ff2c2
--- a/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp	Fri Mar 12 15:43:00 2010 +0200
+++ b/videocollection/hgmyvideos/src/vcxhgmyvideosvideomodelhandler.cpp	Mon Mar 15 12:40:47 2010 +0200
@@ -142,6 +142,7 @@
     {
     iResumeArray.Close();
     
+    delete iVideoDetails;
     delete iVideoIndicator;
     delete iDataUpdater;
     delete iDownloadUpdater;
@@ -487,6 +488,22 @@
     }
 
 // -----------------------------------------------------------------------------
+// CVcxHgMyVideosVideoModelHandler::GetVideoId()
+// -----------------------------------------------------------------------------
+//
+TInt CVcxHgMyVideosVideoModelHandler::GetVideoId( TInt aIndex )
+    {
+    CMPXMedia* media = iVideoArray->MPXMedia( aIndex );
+
+    if ( media && media->IsSupported( KMPXMediaGeneralId ) )
+        {
+        return media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ).iId1;
+        }
+    
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
 // CVcxHgMyVideosVideoModelHandler::GetVideoSize()
 // -----------------------------------------------------------------------------
 //
@@ -516,7 +533,7 @@
 
     for ( TInt i = 0; i < aOperationTargets.Count(); i++ )
         {
-        media = iVideoArray->MPXMedia( aOperationTargets[i] );
+        media = iVideoArray->MPXMediaByMPXItemId( TMPXItemId(aOperationTargets[i],0) );
 
         if ( media && media->IsSupported( KMPXMediaGeneralId ) )
             {
@@ -526,9 +543,15 @@
             mediaToDelete->SetTObjectValueL( KMPXMediaGeneralId, mpxItemId );
             mediasToDelete->AppendL( *mediaToDelete );
             CleanupStack::PopAndDestroy( mediaToDelete );
+            iDataUpdater->PrepareForMoveOrDelete( mpxItemId );
             }
         }
 
+    if ( mediasToDelete->Count() <= 0 )
+        {
+		User::Leave( KErrNotFound );
+        }
+
     TRAPD( err, iModel.CollectionClient().DeleteVideosL( mediasToDelete ) );
     	
     if ( err != KErrNone )
@@ -559,7 +582,7 @@
 
     for ( TInt i = 0; i < aOperationTargets.Count(); i++ )
         {
-        media = iVideoArray->MPXMedia( aOperationTargets[i] );
+        media = iVideoArray->MPXMediaByMPXItemId( TMPXItemId(aOperationTargets[i],0) );
                     
         if ( media && media->IsSupported( KMPXMediaGeneralId ) )
             {
@@ -569,10 +592,17 @@
             mediaToMoveOrCopy->SetTObjectValueL( KMPXMediaGeneralId, mpxItemId );
             mediasToMoveOrCopy->AppendL( *mediaToMoveOrCopy );
             CleanupStack::PopAndDestroy( mediaToMoveOrCopy );
+            iDataUpdater->PrepareForMoveOrDelete( mpxItemId );
             }
         }
 
+    if ( mediasToMoveOrCopy->Count() <= 0 )
+        {
+		User::Leave( KErrNotFound );
+        }
+		
     iModel.CollectionClient().MoveOrCopyVideosL( mediasToMoveOrCopy, aTargetDrive, aCopy );
+
     CleanupStack::PopAndDestroy( mediasToMoveOrCopy );    
     }
 
@@ -1382,6 +1412,10 @@
 // 
 void CVcxHgMyVideosVideoModelHandler::VideoDetailsCompletedL( const CMPXMedia& aMedia )
     {
+    if ( !iVideoDetails )
+        {
+	    iVideoDetails = CVcxHgMyVideosVideoDetailsDialog::NewL();
+        }
     iVideoDetails->ShowVideoDetailsDialogL( aMedia );
     }