mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp
branchRCL_3
changeset 21 cb96c29156b2
parent 19 a12246c97fcc
child 24 26a1709b9fec
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Wed Jun 09 09:38:28 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Mon Jun 21 15:37:19 2010 +0300
@@ -162,7 +162,8 @@
 	iShuffleItem(0),
 	iSetEmptyTextNeeded(EFalse),
 	iPopupListRect(TRect(0,0,0,0)),
-	iPreviousViewId(TUid::Uid(0))
+	iPreviousViewId(TUid::Uid(0)),
+	iDrawBackGround(EFalse)
     {
     }
 
@@ -818,7 +819,7 @@
 //
 void CMPXCollectionViewHgContainer::Draw(const TRect& /*aRect*/) const
     {
-    if ( iContext == EContextUnknown )
+    if ( iContext == EContextUnknown || iDrawBackGround != EFalse )
         {
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
@@ -1502,10 +1503,15 @@
     if( iListWidget )
         {
         TRect clientRect = ((CAknView*)iView)->ClientRect();
-        TInt mediaIndex = MediaIndex(iListWidget->SelectedIndex());
+        TInt index = MediaIndex(iListWidget->SelectedIndex()); 
+        TInt mediaIndex (index);
         mediaIndex = ( KErrNotFound == mediaIndex ) ? iListWidget->FirstIndexOnScreen() : mediaIndex;
         mediaIndex = ( mediaIndex >= 0 && (mediaIndex < (mediaCount)) ) ? mediaIndex : (mediaCount - 1);
-
+		// No need to modify index of first item, if reorder is activated
+        if ( IsInReorderMode() && index == KErrNotFound )
+            {
+            mediaIndex = KErrNotFound;  
+            }      
         TInt prevItemCount = iListWidget->ItemCount();
 
         iListWidget->InitScreenL( clientRect );
@@ -1520,6 +1526,19 @@
             iListWidget->ResizeL( aCount );
             ProvideDataWithoutThumbnailsL(aMediaArray);
             iListWidget->SetSelectedIndex( mediaIndex + iShuffleItem );
+		    // Reserve mark icon for playlist in reorder mode
+			if ( IsInReorderMode() )
+                {
+                MarkGrabedItemL( CurrentLbxItemIndex() + 1 );
+                }
+				
+			// To remove flicker of default albumart in playlist track level
+			if ( iContext == EContextItemPlaylist )
+			    {  
+            	iDefaultIconSet = EFalse;
+            	// Setting an empty icon to the list as default icon.
+            	iListWidget->SetDefaultIconL(CGulIcon::NewL(new CFbsBitmap()));
+            	}	
             }
         else
             {
@@ -1890,7 +1909,7 @@
 		   {
 	     ResolvePopupListSizeL();
 		   }
-		
+
     iMediaWall->SetOpenedItemRect( iPopupListRect );
     iMediaWall->SetOpeningAnimationType( CHgVgMediaWall::EHgVgOpeningAnimationZoomToFront );
 
@@ -2221,6 +2240,11 @@
     // ganes list components still uses this version of the HandleOpen
     if ( iContext == EContextItemAlbum  )
 		{
+        if( iCurrentViewType == EMPXViewTBone )
+            {
+            iMediaWall->SetFlags( CHgVgMediaWall::EHgVgMediaWallDrawToWindowGC );
+            iMediaWall->DrawNow();
+            }
         SaveSelectedAlbumItemL(iSelectedAlbumIndex);
 		UpdatePathAndOpenL(index);
         // Start animation now as next view activated is
@@ -2242,15 +2266,28 @@
     else if ( iContext == EContextGroupSong || iContext == EContextItemPlaylist || iContext == EContextItemGenre )
         {
         // Check if shuffle play all was selected.
-        if (!ShufflePlayAllL(index))
+        TBool inReorderMode ( IsInReorderMode() );
+        if ( inReorderMode && index == KErrNotFound )
+            {
+			// If Shuffle is selected in reorder mode than Grabbed item should move 
+			// to first position in the playlist, just after shuffle item.
+            SetLbxCurrentItemIndex(1);
+            iView->ProcessCommandL( EMPXCmdCommonEnterKey );
+            }
+        else if ( !ShufflePlayAllL(index) )
             {
             // To open the selected album.
             iView->ProcessCommandL( EMPXCmdCommonEnterKey );
             }
-        // Start animation now as next view activated is
-        // now playing view. We will end animation in now playing view.
-        SetupTransitionType(KMPXInterviewTransition);
-        BeginFullScreenAnimation();
+
+		// Disable transition in reorder mode
+        if( !inReorderMode )
+            {   
+			// Start animation now as next view activated is
+            // now playing view. We will end animation in now playing view.
+            SetupTransitionType(KMPXInterviewTransition);
+            BeginFullScreenAnimation();
+            }
         }
     else
 		{
@@ -5083,6 +5120,25 @@
     }
 
 // ---------------------------------------------------------------------------
+// Hides container window controls
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionViewHgContainer::HideContainerWindow()
+    {
+    if( iMediaWall )
+        iMediaWall->MakeVisible(EFalse);
+    if( iListWidget )
+        iListWidget->MakeVisible(EFalse);
+    if( iMwListWidget )
+        iMwListWidget->MakeVisible(EFalse);
+
+	// draw background application rectangle
+    iDrawBackGround = ETrue;
+    DrawNow();
+    iDrawBackGround = EFalse;
+     }
+
+// ---------------------------------------------------------------------------
 // Prepare and begin fullscreen animation effects
 // ---------------------------------------------------------------------------
 //
@@ -5171,7 +5227,7 @@
     CleanupStack::PushL( dialog );
 
     listBox->ConstructL( dialog, EAknListBoxViewerFlags );
-    
+
     // title can be hardcoded because it is not shown to user. Just for the calculations.
     dialog->SetTitleL(_L("Foo"));
     iPopupListRect = dialog->LayoutRect();
@@ -5179,4 +5235,15 @@
     CleanupStack::PopAndDestroy( dialog );
     CleanupStack::PopAndDestroy( listBox );
     }
+
+// ---------------------------------------------------------------------------
+// Marked the grabbed item for reordering
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionViewHgContainer::MarkGrabedItemL(TInt aIndex)
+    {
+	MPX_DEBUG2( "CMPXCollectionViewHgContainer::MarkGrabedItemL item %d", aIndex + iShuffleItem );
+    iListWidget->Mark( aIndex + iShuffleItem );
+    }
+
 //  End of File