mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp
branchRCL_3
changeset 40 cb96c29156b2
parent 31 a12246c97fcc
child 49 455f89b7fcc5
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Wed Jun 09 09:38:28 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Mon Jun 21 15:37:19 2010 +0300
@@ -131,7 +131,7 @@
 _LIT( KCategoryEmpty, "" );
 
 const TInt KIncrementalDelayNone = 0;
-const TInt KIncrementalDelayHalfSecond = 1000000;
+const TInt KIncrementalDelayHalfSecond = 500000;
 const TInt KIncrementalFetchBlockSize = 400;
 const TInt KIncrementalDirectionCount = 8;
 const TInt KWaitNoteImpUid = 0x101FFC6C; // refresh wait note UID
@@ -167,6 +167,7 @@
 const TInt KMPXCollectionArtistAlbum( 3 );
 const TInt KMPXCollectionGenre( 5 );
 
+_LIT(KEmptyTitle, " ");
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -357,6 +358,7 @@
     // grab the current process priority
     RProcess proc;
     iPriority = proc.Priority();
+    iGoToNowPlaying = EFalse; 
     }
 
 void CMPXCollectionViewHgImp::HandleStatusPaneSizeChange()
@@ -986,15 +988,10 @@
                         // check for unknown entry
                         // if it's the last entry, and it's null text
                         // load "unknown" text to display in prompt
-                        HBufC* unknownText( StringLoader::LoadLC( R_MPX_QTN_MP_UNKNOWN ) );
                         waitNoteText = StringLoader::LoadLC(
-                            R_MPX_QTN_MUS_QUERY_CONF_DELETE_ALL, *unknownText );
-                        promptTxt = StringLoader::LoadL(
-                            R_MPX_QTN_NMP_QUERY_CONF_DELETE_GROUP, *unknownText );
-                        CleanupStack::Pop( waitNoteText );
-                        CleanupStack::PopAndDestroy( unknownText );
-                        CleanupStack::PushL( waitNoteText );
-                        CleanupStack::PushL( promptTxt );
+                            R_MPX_QTN_MUS_QUERY_CONF_DELETE_ALL_UNKNOWN);
+                        promptTxt = StringLoader::LoadLC(
+                            R_MPX_QTN_NMP_QUERY_CONF_DELETE_GROUP_UNKNOWN);
                         }
                     else
                         {
@@ -1517,6 +1514,8 @@
     TInt currentItem( iContainer->CurrentLbxItemIndex() );
     iContainer->EnableFindBox( EFalse );
     iContainer->SetReorderGrabbedMode( ETrue, currentItem );
+	// mark the grabbed item
+    iContainer->MarkGrabedItemL( currentItem );
     if ( !iContainer->IsInReorderMode() )
         {
         iContainer->UpdateReorderTitleIconL();
@@ -1541,7 +1540,7 @@
             iDuration = NULL;
             }
         iContainer->ActivateReorderMode( ETrue );
-        SetNewCbaL( R_MPX_CUI_REORDER_DROP_CANCEL_CBA );
+        SetNewCbaL( R_MPX_CUI_REORDER_CANCEL_CBA );
         }
     iContainer->SetLbxCurrentItemIndexAndDraw( currentItem );
     UpdateReorderNaviPaneL();
@@ -1596,6 +1595,7 @@
         iContainer->ActivateReorderMode( EFalse );
         iContainer->EnableFindBox( ETrue );
         }
+    iHandlingKeyEvent = ETrue;
     iContainer->HandleLbxItemAdditionPreserveIndexL();
     }
 
@@ -4136,7 +4136,7 @@
     TArray<TMPXAttribute> ary = attrs.Array();
     iIncrementalOpenUtil->SetDelay( KIncrementalDelayNone );
     iIncrementalOpenUtil->StartL( ary, KIncrementalFetchBlockSize,
-                                  KErrNotFound, CMPXCollectionOpenUtility::EFetchNormal );
+                                  KErrNotFound, CMPXCollectionOpenUtility::EFetchDown );
     iIncrementalOpenUtil->SetDelay( KIncrementalDelayHalfSecond );
     CleanupStack::PopAndDestroy( &attrs );
 
@@ -5240,6 +5240,7 @@
             }
         case EMPXCmdGoToNowPlaying:
             {
+            iGoToNowPlaying = ETrue;
             AppUi()->HandleCommandL( aCommand );
             break;
             }
@@ -6069,6 +6070,8 @@
 	   delete iTitle;
        iTitle = NULL;
        }
+    // for Avkon calling Deactivate, not manually hiding window contorls, reset iGoToNowPlaying
+    iGoToNowPlaying = EFalse;
     // Cleanup view deactivation observer
     AppUi()->RemoveViewDeactivationObserver( this );
     }
@@ -6813,75 +6816,57 @@
 								
             HandleInitMusicMenuPaneL(aMenuPane);
             aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, NowPlayingOptionVisibilityL() );
-			if ( isListEmpty )
+            aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
+            aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
+            
+            if( iContainer->IsInReorderMode() )
+                break;
+            
+			if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
 				{
-				aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+				aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
+				aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
+				aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
 				aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
+				}
+			else
+				{
+				TInt selectionCount( 0 );
+				iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned
+				if ( iSelectionIndexCache)
+					{
+					selectionCount = iSelectionIndexCache->Count();
+					}
+				// do not display add songs option when marking is on or USB is connected
 				if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
 					{
 					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
 					}
-                else
+				else
+					{
+					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 );
+					}
+
+				if ( iContainer->CurrentLbxItemIndex() > KErrNotFound )
 					{
-					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, EFalse );
+					aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
+					aMenuPane->SetItemDimmed( EMPXCmdRemove, EFalse );
+					if ( iContainer->CurrentListItemCount() > 1 )
+					    {
+					    aMenuPane->SetItemDimmed( EMPXCmdReorder, EFalse );
+					    }
 					}
 				}
-			else
-				{
-                aMenuPane->SetItemDimmed( EMPXCmdUpnpPlayVia, ETrue );
-                aMenuPane->SetItemDimmed( EMPXCmdUPnPAiwCmdCopyToExternalCriteria, ETrue );
-                aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue );
-                aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
-                aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
-                aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
-				aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
 				
-
-
-				if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
-					{
-					aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
-					aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
-					aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
-					}
-				else
-					{
-					TInt selectionCount( 0 );
-					iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned
-					if ( iSelectionIndexCache)
-						{
-						selectionCount = iSelectionIndexCache->Count();
-						}
-					// do not display add songs option when marking is on or USB is connected
-					if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
-						{
-						aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
-						}
-					else
-						{
-						aMenuPane->SetItemDimmed( EMPXCmdAddSongs, selectionCount > 0 );
-						}
-
-					if ( iContainer->CurrentLbxItemIndex() > KErrNotFound )
-						{
-						aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
-						aMenuPane->SetItemDimmed( EMPXCmdRemove, EFalse );
-						}
-					}
-				} 
-
-            CMPXCollectionViewListBoxArray* array =
+			CMPXCollectionViewListBoxArray* array =
             static_cast<CMPXCollectionViewListBoxArray*>(
                     iContainer->ListBoxArray() );
             const CMPXMedia& containerMedia = array->ContainerMedia();
@@ -6909,7 +6894,11 @@
             aMenuPane->SetItemDimmed( EMPXCmdUseAsCascade, ETrue );
             aMenuPane->SetItemDimmed( EMPXCmdAlbumArt, ETrue );
             aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, ETrue );
-
+            aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue );
+            
+            if( iContainer->IsInReorderMode() )
+                break;
+            
 			TInt selectionCount( 0 );
 			iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned
 			if ( iSelectionIndexCache)
@@ -7150,9 +7139,8 @@
                 {
                 ProcessCommandL( iContainer->IsInReorderMode() ?
                     EMPXCmdReorderDrop : EMPXCmdReorderGrab );
-                iIsGrabbed = !iIsGrabbed;
-                }
-            else if ( !iHandlingKeyEvent )
+                }
+		    else if ( !iHandlingKeyEvent )
                 {
                 TMPXPlaybackState pbState( iPlaybackUtility->StateL() );
                 TBool isEqual( EFalse );
@@ -7289,8 +7277,7 @@
             {
             SaveCurrentPlaylistL();
             iContainer->ConfirmReorderL();
-            DeactivateReorderGrabbedModeL( EFalse );
-            SetNewCbaL( R_MPX_CUI_REORDER_GRAB_DONE_CBA );
+            DeactivateReorderGrabbedModeL( ETrue );
             break;
             }
         case EMPXCmdReorderGrab:
@@ -7947,6 +7934,26 @@
             iInSongDetails = EFalse;
             }
         }
+     else if ( ( aCurrentViewType.iUid == KMPXPluginTypePlaybackUid ) && ( iGoToNowPlaying == EFalse ) )        
+        {
+		// It is view switching when launched from other applications
+		// hide this view to avoid flickering 
+		// since this view is the current active view, it receives this event
+
+		if ( iContainer )
+        	{
+            iContainer->HideContainerWindow();
+   	  
+            // set title to blank to avoid title flickering
+            CAknTitlePane* title( static_cast<CAknTitlePane*>
+                ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ))));
+            if ( title )
+                {
+                title->SetTextL(KEmptyTitle); 
+                title->DrawNow();
+	            }
+		    }
+        }
     }
 
 // -----------------------------------------------------------------------------